Der Fehler ist ziemlich offensichtlich. Die nicht aggregierten Spalten in SELECT
einer Aggregationsabfrage müssen mit den Schlüsseln übereinstimmen. In Ihrer Abfrage BILLDATE
wird nicht aggregiert und ist kein Schlüssel.
Die einfache Lösung ist:
SELECT BILLNO, BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO, BILLDATE;
Wenn Sie nur eine Zeile pro BILLNO
wollen -- oder wenn Sie das kennen BILLDATE
ist für alle BILLNO
gleich -- dann können Sie stattdessen eine Aggregationsfunktion verwenden:
SELECT BILLNO, MAX(BILLDATE) as BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO;