News

Workaround für X++-Select Statements mit Count und Group by

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.

Teilen per
<< zurück zur Übersicht