【发布时间】:2013-06-05 22:58:21
【问题描述】:
很抱歉,我知道这种类型的问题已经被问了很多次,但是我看到的帖子似乎不太适合我想要做的事情或有所作为,这是一个简单的解决方案,因为我有一张桌子它存储类型 ID 和保存日期,然后存储另一个具有该类型 ID 和类型名称的表。
我想要的是它会在设定的日期范围内显示所有保存的类型,但显示 0 计数,而不是根本不显示该类型。如果我将查询仅作为计数运行,它会完全符合我的要求
SELECT dbo.RequestType.Type, COUNT(dbo.Requests.RequestType) AS Count
FROM dbo.RequestType LEFT OUTER JOIN
dbo.Requests ON dbo.RequestType.TypeID = dbo.Requests.RequestType
GROUP BY dbo.RequestType.Type
但是,如果我这样设置日期范围:
SELECT dbo.RequestType.Type, COUNT(dbo.Requests.RequestType) AS Count
FROM dbo.RequestType LEFT OUTER JOIN
dbo.Requests ON dbo.RequestType.TypeID = dbo.Requests.RequestType
WHERE (dbo.Requests.DateSaved BETWEEN CONVERT(DATETIME, '2013-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2013-03-30 00:00:00', 102))
GROUP BY dbo.RequestType.Type
那么任何 0 计数都不显示?
谢谢
【问题讨论】:
-
为什么要转换日期?你试过只做
BETWEEN '2013-01-01' AND '2013-03-30'。