SQL DB2-根据条件汇总销售额

问题描述 投票:0回答:1

我想在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)

谢谢!

db2-400
1个回答
0
投票

您是正确的,案例就是您想要的。这样尝试:

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;
© www.soinside.com 2019 - 2024. All rights reserved.