Błąd jest dość oczywisty. Niezagregowane kolumny w SELECT
zapytania agregującego muszą być zgodne z kluczami. W zapytaniu BILLDATE
nie jest zagregowana i nie jest kluczem.
Prosta poprawka to:
SELECT BILLNO, BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO, BILLDATE;
Jeśli chcesz tylko jeden wiersz na BILLNO
-- lub jeśli wiesz, że BILLDATE
jest taki sam dla wszystkich BILLNO
-- możesz zamiast tego użyć funkcji agregacji:
SELECT BILLNO, MAX(BILLDATE) as BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO;