Microsoft har lavet nogle forbedringer til forespørgselssproget FetchXML. Det er nu muligt at tælle (count) poster. Ændringen består i hovedtræk i, at det nu er muligt at tælle på basis af en kolonneangivelse i stedet for kun af kunne tælle på en samlet tabel (count(*)).
Det er endvidere blevet muligt at tælle på unikke kolonner (destinct). Hvis Destinct ikke specificeret i forbindelse med countcolumn, vil der blive returneret værdien false.
I følgende tabel opsummeres Fetch-funktionaliteten vedrørende tæl (count) i sammenligning med tilsvarende SQL forespørgsel.
|
CRM Fetch XML
|
SQL
|
|
<attribute name='address1_city' aggregate='count' alias='citycount' />
|
SELECT COUNT(*) AS 'citycount' FROM Account
|
|
<attribute name='address1_city' aggregate='countcolumn' alias='citycount' />
|
SELECT COUNT(address1_city) AS 'citycount' FROM Account
|
|
<attribute name='address1_city' aggregate='countcolumn' alias='citycount' distinct='true' />
|
SELECT COUNT(DISTINCT address1_city) AS 'citycount' FROM Account
|
Eksempler
Eksemplet viser hvordan man tæller alle Accounts, som har tilknyttet et land (country) i deres adresse.
1: Query to return a count of all Accounts which have a county specified in their address.
2: <fetch aggregate='true'>
3: <entity name='account'>
4: <attribute name='address1_county' aggregate='countcolumn' alias='countyAccounts' />
5: </entity>
6: </fetch>
Følgende eksempel viser hvordan man tæller på Account, altså får returneret alle Accounts ved brug af nøgleordet distinct.
1: <fetch aggregate='true'>
2: <entity name='account'>
3: <attribute name='address1_stateorprovince' aggregate='countcolumn' alias='countStates' distinct='true' />
4: </entity>
5: </fetch>