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

MySQL sử dụng Sum và Case

Lỗi do khoảng cách giữa tên hàm và dấu ngoặc đơn

SUM (CASE WHEN ...
   ^^

Đọc thêm Phân tích cú pháp Tên hàm và Độ phân giải

Hãy thử

SELECT BusinessUnit,
       SUM(CASE WHEN OrderDate = CURDATE() THEN 1 ELSE 0 END) TodaysOrders,
       SUM(CASE WHEN DATE_FORMAT(OrderDate, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m') THEN 1 ELSE 0 END) ThisMonthsOrders,
       SUM(CASE WHEN YEAR(OrderDate) = YEAR(CURDATE()) THEN 1 ELSE 0 END) ThisYearsOrders
  FROM OrderTable
 WHERE Canceled <> 'Y'
 GROUP BY BusinessUnit

Đây là SQLFiddle bản demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình cơ sở dữ liệu cho một thực thể yếu

  2. LỆNH SQL BẰNG cách sử dụng các câu lệnh đã soạn sẵn

  3. Khi sử dụng Entity Framework với MySQL, các ký tự Unicode được thay thế bằng các ký tự cơ bản

  4. Trình điều khiển QMYSQL khả dụng nhưng không được tải

  5. MySQL xuất INTO OUTFILE - lỗisecure-file-priv khi sử dụng thư mục đặt