ABAP: Wie kombinieren wählen Sie max und count?
Habe ich dieses:
select ordernr
from users
having count(ordernr) =
( select max(count(ordernr))
from users where ordernr = ordernr
group by ordernr )
group by ordernr
bekommen die die meisten verwendeten Reihenfolge-Nummer (best.nr) von allen Usern.
Wie man es in ABAP-SAP-System? Ich hab das versucht:
select SINGLE ordernr
from ZDEVXXX_PROJECT3 INTO ordernrU
having count( * ) =
( select max( count( * ) )
from ZDEVXXX_PROJECT3
where ordernr = ordernr
group by ordernr )
Aber ich bekomme diese Fehlermeldung:
"Unknown columnname COUNT("
How zu kombinieren, max und count in ABAP? Die SQL-Abfrage oben funktioniert in Oracle für mich.
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie COUNT(*) in das Ergebnis gesetzt, wenn Sie es verwenden möchten, in der HAVING-Klausel. Sehen http://help.sap.com/abapdocu_751/en/ABENWHERE_LOGEXP_ALL_ANY_SOME.htm für ein Beispiel.
Seit Version 6.1 können Sie das Aggregat in der HAVING-Klausel.
Aber Ihre Antwort ist "Nein". Die Aggregate dürfen nur in form
aggr( {[distinct] column | *} )
So müssen Sie zu
Dann finden maximal zählt programmaticaly. Und nur dann, es zu benutzen in Bedingung.
Oder Sie können mit ABAP-Open-SQL. Es bietet Ihnen den Zugriff auf SQL von Ihr bestimmten DB, und Sie können führen Sie Ihre oben erwähnte Abfrage.