【发布时间】:2014-04-04 11:07:33
【问题描述】:
SELECT Pod_Code, COUNT(*)
FROM [DBHFT 201314 Trust SLAM Model PID].dbo.D_Actual_Activity_HRG A
INNER JOIN dbo.D_HrgCodes B ON A.HRG_ID = B.Hrg_ID
INNER JOIN dbo.D_PodAll C ON A.Pod_ID = C.Pod_ID
INNER JOIN dbo.D_SpecCodes D On A.Spec_ID = D.Spec_ID
INNER JOIN dbo.D_GppCodes E ON A.Gpp_ID = E.Gpp_ID
LEFT JOIN dbo.D_CalcResults_ReportMasterIDs F ON A.ReportMasterID = F.ReportMaster_ID
LEFT JOIN dbo.D_CalcResultsMain G ON F.RM_ID = G.RM_ID
AND A.MonthNo = G.Month
AND A.Spec_ID = G.Spec_ID
AND A.Pod_ID = G.POD_ID
AND A.Hrg_ID = G.HRG_ID
WHERE G.Category_Type = 0
AND (Activity_Actual <>0 OR Price_Actual <>0)
AND CASE WHEN
(Pod_Code = 'DI' THEN A.SpellAdmissionDate = G.SpellAdmissionDate) END
GROUP BY Pod_Code
ORDER BY Pod_Code;
嗨,
我已经编写了上面的代码,并尝试在WHERE 和JOIN 区域中使用我的CASE WHEN 语句,但没有任何乐趣。我想要实现的是,当 POD 代码 为 DI 时,还链接仅具有相同录取日期的数据,因为目前这些行正在重复.问题是我不能只链接这个字段,因为不是每一行都有一个录取日期,所以它会导致输出问题。到目前为止,我已经在该网站上阅读了各种解决方案,并试图将它们调整到这种情况下,但没有任何乐趣(运行失败或错误消息等)。任何帮助将不胜感激。
问候, 锡
【问题讨论】:
-
这是一个简化的例子还是你真的只想数数?那为什么要加入所有这些表呢?
标签: sql sql-server-2008 join case