我正在使用VS2010为我的应用程序构建报告。
应用程序的数据存储在SQL Server 2008 R2数据库中。
列是
DateCreated (DateTime)
CardPrinted (bit)
DatePrinted(DateTime)
我想创建一份报告,显示从2012年1月开始的每个月
CardPrinted
总数CardPrinted
总数CardPrinted
总数CardPrinted
总数注意:如果打印了一张卡,则数据库中的标记为1,因此CardPrinted
列是1或0.
我需要有人帮助解决我需要的查询。
答案 0 :(得分:3)
这是一个开始
Select DATEPART ( week , DatePrinted) as WeekNo, Count(*) as TotalNumberPrinted
From SomeTable
Where CardPrinted = 1
And DatePrinted >= '2012-01-01'
Group by DATEPART ( week , DatePrinted)
答案 1 :(得分:0)
谢谢Tony Hopkinson 经过一点修改后,我做对了。 这是查询:
SELECT DATEPART(MONTH,DatePrinted)AS Month_of_year,
DATEPART(WEEK,DatePrinted) AS Weeks, COUNT(*) AS No_ofCardprinted
From MyTable
Where CardPrinted = 1 and DateCreated between DATEADD(Day, - 61, GETDATE())
and DATEADD(Day, -0, GETDATE())
Group by DATEPART (WEEK , DatePrinted), DATEPART(MONTH,DatePrinted)
order by Month_of_year ASC