Caz Când cu AND? (Programare, Mysql, Sql, Bază De Date)

Mă voi întoarce a intrebat.

Vreau să folosesc Case When cu AND și nu se calculează corect suma.

De exemplu:

SELECT DATE(`SubmitDate`), 
     SUM(CASE status WHEN 'New' AND `Type` = 'consumer' THEN 1 ELSE 0 END) as new_consumer,
     SUM(CASE status WHEN 'New' AND `Type` = 'business' THEN 1 ELSE 0 END) as new_business
FROM report
WHERE `source` = 'net'
group by DATE(`SubmitDate`) Order by `SubmitDate` DESC

Comentarii

  • Ce nu face corect – user1432124
2 răspunsuri
GarethD

Trebuie să utilizați CASE WHEN [Condition] THEN... mai degrabă decât o simplă expresie de caz:

SELECT DATE(`SubmitDate`), 
     SUM(CASE WHEN status = 'New' AND `Type` = 'consumer' THEN 1 ELSE 0 END) as new_consumer,
     SUM(CASE WHEN status = 'New' AND `Type` = 'business' THEN 1 ELSE 0 END) as new_business
FROM report
WHERE `source` = 'net'
group by DATE(`SubmitDate`) Order by `SubmitDate` DESC

Panagiotis Kanavos

Ar trebui să scrieți

CASE  WHEN status='New' AND `Type` = 'consumer' THEN 1 ELSE 0 END

Verificați sintaxa lui CASE WHEN