Chyba je celkem zřejmá. Neagregované sloupce v SELECT
agregačního dotazu musí odpovídat klíčům. Ve vašem dotazu BILLDATE
není agregováno a není to klíč.
Jednoduchá oprava je:
SELECT BILLNO, BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO, BILLDATE;
Pokud chcete pouze jeden řádek na BILLNO
-- nebo pokud víte, že BILLDATE
je stejný pro všechny BILLNO
-- pak můžete místo toho použít funkci agregace:
SELECT BILLNO, MAX(BILLDATE) as BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO;