Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL案例和当_Sql_Sum_Case - Fatal编程技术网

SQL案例和当

SQL案例和当,sql,sum,case,Sql,Sum,Case,在长查询中使用SUM时,我很难找出一个例子。以下是查询的当前相关部分- SELECT _various items_ SUM (nt.GALLONS) AS "2018 CCE gallons" FROM MQ_CDS_NETTRAN nt JOIN MQCCNSTORE s ON nt.COSTCENTER = s.COSTCENTER WHERE nt.CLRNTSYS = 'CCE' 我现在需要做的是 WHERE nt.CLRNTSYS IN ('CCE','BAC') 并将每加仑分

在长查询中使用SUM时,我很难找出一个例子。以下是查询的当前相关部分-

SELECT _various items_
SUM (nt.GALLONS) AS "2018 CCE gallons"
FROM MQ_CDS_NETTRAN nt
JOIN MQCCNSTORE s ON nt.COSTCENTER = s.COSTCENTER 
WHERE nt.CLRNTSYS = 'CCE'
我现在需要做的是

WHERE nt.CLRNTSYS IN ('CCE','BAC')

并将每加仑分别汇总为“2018 CCE加仑”或“2018 BAC加仑”(CLRNTSYS下除“CCE”或“BAC”外,还有大约8个其他选项)。由于之前没有使用CASE,我还没有找到一个例子,可以根据另一列中的数据对另一列求和,并给它取另一个名称。这将如何工作?

这应该使用
条件聚合来工作:

SELECT _various items_
    SUM (CASE WHEN nt.CLRNTSYS = 'CCE' THEN nt.GALLONS END) AS "2018 CCE gallons",
    SUM (CASE WHEN nt.CLRNTSYS = 'BAC' THEN nt.GALLONS END) AS "2018 BAC gallons"
FROM MQ_CDS_NETTRAN nt
JOIN MQCCNSTORE s ON nt.COSTCENTER = s.COSTCENTER 
WHERE nt.CLRNTSYS IN ('CCE','BAC')

这应该使用
条件聚合

SELECT _various items_
    SUM (CASE WHEN nt.CLRNTSYS = 'CCE' THEN nt.GALLONS END) AS "2018 CCE gallons",
    SUM (CASE WHEN nt.CLRNTSYS = 'BAC' THEN nt.GALLONS END) AS "2018 BAC gallons"
FROM MQ_CDS_NETTRAN nt
JOIN MQCCNSTORE s ON nt.COSTCENTER = s.COSTCENTER 
WHERE nt.CLRNTSYS IN ('CCE','BAC')
您可以尝试使用条件聚合函数

您可以尝试使用条件聚合函数


我不会删除
where
标准,因为它可能返回不同的核心结果…有一个不同的where标准-我只是把它从我发布的内容中删除了,因为这是一个相当长的对startI的查询。我不会删除
where
标准,因为它可能返回不同的核心结果…有一个不同的where标准-我只是把它从我发布的内容中删掉了,因为这是一个相当长的查询开始