sql >> Databasteknik >  >> RDS >> Mysql

MySQL med Sum och Case

Felet orsakas av mellanrummet mellan funktionsnamn och parentes

SUM (CASE WHEN ...
   ^^

Läs mer Parsning och upplösning av funktionsnamn

Prova

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

Här är SQLFiddle demo




  1. SQL ELLER Operator för nybörjare

  2. Hur du säkerhetskopierar din Moodle MariaDB-databas

  3. Php - Din PHP-installation verkar sakna MySQL-tillägget som krävs av WordPress

  4. Exportera SQL Server-data till CSV-fil