sql >> Databáze >  >> RDS >> Mysql

MySQL pomocí Sum a Case

Chyba je způsobena mezerou mezi názvem funkce a závorkou

SUM (CASE WHEN ...
   ^^

Přečtěte si více Parsování a rozlišení názvu funkce

Zkuste

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

Zde je SQLFiddle demo




  1. PostgreSQL VACUUM a ANALÝZA Tipy osvědčených postupů

  2. PG::DuplicateTable:ERROR:relační příspěvky již existují

  3. Správný způsob použití LIKE '%{$var}%' s připravenými příkazy? [mysqli]

  4. Instalace Oracle Forms and Reports 11g Release 2