【发布时间】:2010-06-21 02:00:09
【问题描述】:
我将代码缩短了很多,但希望有人能了解我正在尝试做什么。需要对两个不同选择的总数求和,我尝试将它们中的每一个放在左外连接中(也尝试过内连接)。如果我在任何一个左外连接注释掉的情况下运行,我得到正确的数据,但是当我一起运行它们时,我真的搞砸了计数。所以,我知道连接可能不是从同一个表中求和数据的正确方法,我不能简单地在 where 子句中这样做,因为我注释掉的代码中涉及其他表。
我想我想将 2 个不同的查询加在一起。
SELECT eeoc.EEOCode AS 'Test1',
SUM(eeosum.Col_One) AS 'Col_One',
FROM EEO1Analysis eeo
LEFT OUTER JOIN (
SELECT eeor.AnalysisID, eeor.Test1,
SUM(CASE eeor.ZZZ WHEN 1 THEN (CASE eeor.AAAA WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) AS 'Col_One',
FROM EEO1Roster eeor
..........
WHERE eeor.AnalysisID = 7
GROUP BY eeor.AnalysisID, eeor.EEOCode
) AS eeosum2 ON eeosum2.AnalysisID = eeo.AnalysisID
LEFT OUTER JOIN (
SELECT eeor.AnalysisID, eeor.Test1,
SUM(CASE eeor.ZZZ WHEN 1 THEN (CASE eeor.AAAA WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) AS 'Col_One',
FROM EEO1Roster eeor
........
) AS eeosum ON eeosum.AnalysisID = eeo.AnalysisID
WHERE eeo.AnalysisID = 7
GROUP BY eeoc.Test1
【问题讨论】:
-
您的示例有点令人困惑:两个子查询似乎相同。