如何用三种不同的条件对同一列进行三次查询?
How to query the same column three times with three different conditions?
在 SQL-语句中,我需要使用三种不同的条件对同一列进行三次查询。
我需要为所有位置显示 CC.HR1*WLL17.Hours 的总和,但具有三种不同的条件。我在 SELECT 语句中尝试了一个子查询,但是我只得到了总和,而不是按位置分组的总和。
SELECT WLL17.Location, (SELECT SUM(CC.HR1*WLL17.Hours) FROM WLL17 INNER JOIN CC ON WLL17.CC=CC.CC WHERE WLL17.EE = "Post Gate 60 (PV)") AS Plant
FROM WLL17 INNER JOIN CC ON WLL17.CC = CC.CC
WHERE WLL17.CC<>"Outsourced Costs"
GROUP BY WLL17.Location;
尝试遵循这个策略。
SELECT WLL17.Location,
SUM(case when WLL17.EE = "Post Gate 60 (PV)" then CC.HR1*WLL17.Hours else null end) AS Plant,
SUM(case when WLL17.CC<>"Outsourced Costs" then CC.HR1*WLL17.Hours else null end) AS Location_Name1,
SUM(case when [Write condition here] then CC.HR1*WLL17.Hours else null end) AS Location_Name2
FROM WLL17 INNER JOIN CC ON WLL17.CC = CC.CC
GROUP BY WLL17.Location;
在 SQL-语句中,我需要使用三种不同的条件对同一列进行三次查询。 我需要为所有位置显示 CC.HR1*WLL17.Hours 的总和,但具有三种不同的条件。我在 SELECT 语句中尝试了一个子查询,但是我只得到了总和,而不是按位置分组的总和。
SELECT WLL17.Location, (SELECT SUM(CC.HR1*WLL17.Hours) FROM WLL17 INNER JOIN CC ON WLL17.CC=CC.CC WHERE WLL17.EE = "Post Gate 60 (PV)") AS Plant
FROM WLL17 INNER JOIN CC ON WLL17.CC = CC.CC
WHERE WLL17.CC<>"Outsourced Costs"
GROUP BY WLL17.Location;
尝试遵循这个策略。
SELECT WLL17.Location,
SUM(case when WLL17.EE = "Post Gate 60 (PV)" then CC.HR1*WLL17.Hours else null end) AS Plant,
SUM(case when WLL17.CC<>"Outsourced Costs" then CC.HR1*WLL17.Hours else null end) AS Location_Name1,
SUM(case when [Write condition here] then CC.HR1*WLL17.Hours else null end) AS Location_Name2
FROM WLL17 INNER JOIN CC ON WLL17.CC = CC.CC
GROUP BY WLL17.Location;