sql >> Database teknologi >  >> RDS >> Mysql

MySQL ved hjælp af Sum og Case

Fejlen skyldes mellemrummet mellem funktionsnavn og parentes

SUM (CASE WHEN ...
   ^^

Læs mere Parsing og opløsning af funktionsnavn

Prøv

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

Her er SQLFiddle demo




  1. Hvad er det korrekte navn for en tilknytningstabel (et mange-til-mange forhold)

  2. PHP MySQL sæt Connection Timeout

  3. Cache data i PHP SESSION, eller forespørgsel fra db hver gang?

  4. Sådan indstilles forbindelsestimeout i SQLAlchemy