Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lỗi hàm tổng hợp khi sử dụng mệnh đề nhóm theo trong SQL

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với SQL Server từ Linux thông qua JDBC sử dụng integrationSecurity (xác thực Windows)?

  2. Hiệu suất của SQL DELETE

  3. Buộc ASP.Net sử dụng TCP / IP để kết nối với SQL Server thay vì các đường ống được đặt tên

  4. Làm thế nào để chuyển đổi số phút sang định dạng hh:mm trong TSQL?

  5. Các chỉ mục của SQL Server - tăng dần hoặc giảm dần, nó tạo ra sự khác biệt gì?