Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL przy użyciu Sum i Case

Błąd jest spowodowany spacją między nazwą funkcji a nawiasem

SUM (CASE WHEN ...
   ^^

Przeczytaj więcej Przetwarzanie i rozwiązywanie nazw funkcji

Wypróbuj

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

Oto SQLFiddle 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. Jak mogę wysłać zapytanie do bazy danych MySQL z aplikacji Rails bez modeli?

  2. Składnia SQL TRUNCATE – wymieniona przez DBMS

  3. Porównanie dat mysql z formatem date_format

  4. czyszczenie db zbędnych danych

  5. Lepszy sposób na wybranie wszystkich kolumn z pierwszej tabeli i tylko jednej kolumny z drugiej tabeli na sprzężeniu wewnętrznym