Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL с помощта на Sum и Case

Грешката е причинена от интервала между името на функцията и скобата

SUM (CASE WHEN ...
   ^^

Прочетете повече Разбор и разделяне на име на функция

Опитайте

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

Ето SQLPiddle демонстрация




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използвайки where и inner join в mysql

  2. MySQL IN заявките са ужасно бавни с подзаявка, но бързи с изрични стойности

  3. Как да запазите подписа в MySQL

  4. Как да добавя mode=mysql към вградената H2 DB в Spring Boot 1.4.1 за @DataJpaTest?

  5. Какво е еквивалентно изявление на DBCC INPUTBUFFER(@@SPID)(което дава sql оператор за текуща връзка или определена връзка) в MYSQL?