Lỗi là khá rõ ràng. Các cột chưa được tổng hợp trong SELECT
của một truy vấn tổng hợp cần phải khớp với các khóa. Trong truy vấn của bạn, BILLDATE
không được tổng hợp và nó không phải là khóa.
Cách khắc phục đơn giản là:
SELECT BILLNO, BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO, BILLDATE;
Nếu bạn chỉ muốn một hàng cho mỗi BILLNO
- hoặc nếu bạn biết rằng BILLDATE
giống nhau cho tất cả BILLNO
- thì bạn có thể sử dụng một hàm tổng hợp để thay thế:
SELECT BILLNO, MAX(BILLDATE) as BILLDATE,
SUM(QTY) AS SUMQTY,
SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO;