sql >> Base de Datos >  >> RDS >> Sqlserver

Error de función agregada al usar la cláusula group by en SQL

El error es bastante obvio. Las columnas desagregadas en SELECT de una consulta de agregación deben coincidir con las claves. En su consulta, BILLDATE no se agrega y no es una clave.

La solución simple es:

SELECT BILLNO, BILLDATE,
       SUM(QTY) AS SUMQTY,
       SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO, BILLDATE;

Si desea solo una fila por BILLNO -- o si sabe que BILLDATE es el mismo para todos los BILLNO -- entonces puede usar una función de agregación en su lugar:

SELECT BILLNO, MAX(BILLDATE) as BILLDATE,
       SUM(QTY) AS SUMQTY,
       SUM(AMOUNT) AS SUMAMOUNT
FROM PURCHASE
GROUP BY BILLNO;