写一个报告有问题。 我试图指望发布和通过的查询数量,他们都有一个日期时间字段根据2个日期范围计算2个不同列
即时通讯的问题是结果回来不正确。
运行这段代码给了我126通过
SELECT COUNT(*) AS Passed FROM BPS.dbo.tbl_Profile AS p
Inner Join BPS.dbo.tbl_Profile_Mortgage AS pm
ON p.Id = pm.FK_ProfileId
WHERE p.CaseTypeId IN (1,2,9,15) AND CONVERT(DATE,pm.DatePassed,103) BETWEEN @Start AND @End
当我运行所发出的查询,我得到223个
SELECT COUNT(*) AS Issued FROM BPS.dbo.tbl_Profile AS p
Inner Join BPS.dbo.tbl_Profile_Mortgage AS pm
ON p.Id = pm.FK_ProfileId
WHERE p.CaseTypeId IN (1,2,9,15) AND CONVERT(DATE,pm.DateAppIssued,103) BETWEEN @Start AND @End
这些数字是正确的,所以我把它放在一个查询像这样。
SELECT COUNT(pm.DateAppIssued) AS Issued,COUNT(pm.DatePassed) AS Passed FROM BPS.dbo.tbl_Profile AS p
Inner Join BPS.dbo.tbl_Profile_Mortgage AS pm
ON p.Id = pm.FK_ProfileId
WHERE p.CaseTypeId IN (1,2,9,15)
AND (CONVERT(DATE,pm.DateAppIssued,103) BETWEEN @Start AND @End
OR CONVERT(DATE,pm.DatePassed,103) BETWEEN @Start AND @End)
这给我颁发265,并通过185 我已经尝试了许多不同的变化,但不能仍然得到正确的数字 我希望我已经解释过这个不够好,任何帮助,将不胜感激。 Rusty
感谢VKP非常感谢,所以基本上你说如果有一个日期在发布或通过匹配的日期范围,然后算作1.这是一个完美的解决方案,我认为我可以在where子句中实现这一点。我将保存此代码以供将来使用,因为我拥有这样的报告。 – RustyHamster