我正在 SQL Server Management Studio 2005 中编写一个存储过程,以返回两个不同时间段(本月至今和年初至今)的状态和策略计数列表。我创建了几个视图来收集所需的数据和一个存储过程,以便在 Reporting Services 报表中使用。
下面是我的存储过程:
SELECT DISTINCT
S.[State],
COUNT(HP_MTD.PolicyID) AS PolicyCount_MTD,
COUNT(HP_YTD.PolicyID) AS PolicyCount_YTD
FROM tblStates S
LEFT OUTER JOIN vwHospitalPolicies HP_MTD ON S.[State] = HP.[State]
AND HP.CreatedDate BETWEEN DATEADD(MONTH, -1, GETDATE()) AND GETDATE()
LEFT OUTER JOIN vwHospitalPolicies HP_YTD ON S.[State] = HP.[State]
AND HP.CreatedDate BETWEEN DATEADD(YEAR, -1, GETDATE()) AND GETDATE()
GROUP BY S.[State]
ORDER BY S.[State] ASC
我遇到的问题是,当添加第二个 LEFT OUTER JOIN 时,我的计数会膨胀,即使是没有引用第二个连接的 COUNT() 也是如此。我需要左加入,因为并非所有州都会在给定时期内制定政策,但它们仍应出现在报告中。
任何建议将不胜感激!