Die Möglichkeiten für select Statements in X++ sind im Vergleich zu T-SQL in gewissen Bereichen eingeschränkt.
Eine dieser Einschränkungen gibt es bei der Kombination von count und group by in X++.
Während in T-SQL diese Abfrage mit count und distinct abgebildet werden kann, ist dies in X++ per select-Statement nicht möglich.
Ein Beispiel hierfür ist die Abfrage für die Ermittlung aller verwendeten Artikelnummern in Debitorenrechnungspositionen per T-SQL:
select count(distinct ItemId) from CustInvoiceTrans
In X++ hilft das folgende Statement nicht weiter, da der Kernel dies nicht sinnvoll in T-SQL umsetzen kann:
select count(ItemId) from CustInvoiceTrans group by ItemId
Wenn man jedoch ein Query-Objekt zur Hilfe nimmt, ist es möglich diese Abfrage umzusetzen:
QueryRun::getQueryCount(query, intMax());
Das verwendete Query-Objekt muss das Feld ItemId (Artikelnummer) aus der Tabelle CustInvoiceTrans (Debitorenrechnungspositionen) mit group by beinhalten.
Als Rückgabewert erhält man ein Integer mit der Summe aller verwendeten Artikelnummern in Debitorenrechnungspositionen.