SQL DB2 - 根据条件汇总销售额
SQL DB2 - sum up sales based on condition
我想在 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)
谢谢!
你说的对,case就是你想要的。试试这样:
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;
我想在 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)
谢谢!
你说的对,case就是你想要的。试试这样:
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;