SQL DB2 - подведение итогов продаж по условию - PullRequest
0 голосов
/ 30 марта 2020

Я хочу express следующее в SQL DB2. Я хочу добавить стоимость продаж на основе одного из двух условий. Я думаю, что мне нужно заявление CASE, но не уверен. Дайте мне знать, если псевдокод чист.

SELECT Total_Service_Starts, Total_Service_Stops            

If ServiceFile.SERVICE_START > 20200101
   Then Total_Service_Starts  = SUM(ServiceFile.Rate * ServiceFile.Units)   

If ServiceFile.SERVICE_STOP > 20200101
   Then Total_Service_Stops  = SUM (ServiceFile.Rate * ServiceFile.Units)

спасибо!

1 Ответ

1 голос
/ 30 марта 2020

Вы правы, дело в том, что вы хотите. Попробуйте это так:

select
  sum(case when ServiceFile.SERVICE_START > 20200101
              then (ServiceFile.Rate * ServiceFile.Units)   
           else 0 end) as "TotalServiceStarts",
  sum(case when ServiceFile.SERVICE_STOP > 20200101
              then (ServiceFile.Rate * ServiceFile.Units)
           else 0 end) as "TotalServiceStops"
from ServiceFile
where service_start > 20200101
   or service_stop > 20200101;
...