每周报告每周报告

时间:2014-08-15 08:03:57

标签: visual-studio-2010 sql-server-2005 crystal-reports-2010

我试图生成月度报告,但我不知道如何在几周内将其分解。例如,当我生成1月时,我的输出报告应分为4周 - 第一周/第二周/第三周/第四周1月 - 这是否可能?应该在保存到数据库还是SQL之前完成?我有一个名为RecordDate的日期时间字段

我正在使用SQL Server 2005,VS 2010和CR for VS2010。

1 个答案:

答案 0 :(得分:0)

根据您的datetime字段RecordDate,以下SQL将给出该月的一周(从1开始)

select (((datepart(d, RecordDate)-1) / 7)+1)

如果按此分组,您应该能够按一个月的周数生成细分。

当然,这样做的一些'周'不会是7天。可能你真的想按一年中的一周分组,即

select datepart(wk, RecordDate)

在每种情况下,您都需要生成标签。如果您要在SQL中执行此操作,那么在第一种情况下获取类似“第7周的第1周”的标签,它将类似于

select 'week ' + cast( (((datepart(d, RecordDate)-1) / 7)+1) as char(1)) 
+ ' of month ' + cast(datepart(month, RecordDate) as varchar(2)) 
from Table 
group by (((datepart(d, RecordDate)-1) / 7)+1), datepart(month, RecordDate)

对于第二种情况,你必须绕过房子以获得“第7周开始的第1周”标签(我将把这作为读者的练习)