【发布时间】:2016-10-04 09:50:48
【问题描述】:
我正在尝试获取 users 的 30 天报告,这将返回 date 和 total count of users 作为创建的计数日期,我用这个查询做到了
Select count(*) As [Count] ,
(SELECT CONVERT(date, AddDate)) As [Date]
from Users
WHERE AddDate >= (SELECT DateAdd(month, -1, Convert(date, GetDate())))
Group By CONVERT(date, AddDate)
它只给我创建任何用户的日期,但如果它有 count 0,我想显示所有 30 天 >.
我想对月度报告做同样的情况。 我正在获得创建用户的月份,现在我想将其更改为从本月开始过去 12 个月及其总用户数。为此,我正在使用此查询
Select count(*) As [Count] ,
(Select DATEPART( month , DateAdd( month , DATEPART(mm,AddDate) , -1 ) )) as Month
from Users
WHERE AddDate >= (SELECT DateAdd(YEAR, -1, Convert(date, GetDate())))
Group By DATEPART(mm,AddDate)
【问题讨论】:
-
您需要
Calendar table和Left Join
标签: sql sql-server