2013-01-24 52 views
1

示例表:过滤列基于在一个领域日期为当前周,过去几周,以及未来几周

列标题)大家的访谈---(行标题)采访请求

列标题)采访的数本周 - (行值)计数的状态都定于本周所有的日期:“采访请求”如4

列标题)下周采访的数 - (行值)计数有状态下周安排所有的日期:“采访请求”,例如6

首先,我”我想喜欢我的临时表,似乎我不能使用图片,因为我是一个新成员。

我也是使用reportbuilder和sql的新手,一直试图弄清楚如何计算报表中某些日期范围之间的日期数量。

就像在本周所谓的“本周采访次数”的临时字段中所述,我希望根据日期字段计算本周,之后一周,之前一周等所有日期。然后,我打算打破这张桌子,以显示一个人的所有采访时间。

我遇到的问题是会有很多日期跨越不同的月/日。所以林不知道我怎么可以用DateDiff或其他日期特征来表示这个,因为表格是为了当前采访的实时表示。

是我正在尝试甚至可能使用报告生成器?如果是这样,任何提示都会很棒,如果不是的话,那么谢谢你花时间看看我的问题。

的要求数据集字段:

[用户名](用户表),[InterviewStatus](采访表),[DateUpdated](采访表)

这些都是将在所使用的主要的报告

+0

Microsoft SQL Server? –

+0

是2012版本,即时通讯使用报告服务,让我使用报告生成器。 – adminics

+0

你的数据集是怎样的?用你的数据集字段更新你的问题会有所帮助。 – eestein

回答

0

对于本周开始和下一天结束之间的日期,您可以使用where子句中来自采访表过滤的通用select语句。

然后,如果日期落在本周或下一周内,那么这两个字段的和就是1。

编辑: 下面的例子将给出本周内的日期的数量。取自another question

Select InterviewStatus, 
     Sum(Case when DateUpdated >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE()) 
        AND DateUpdated < CAST(CONVERT(VARCHAR(10), DATEADD(dd, (8 - DATEPART(dw, GETDATE())), GETDATE()), 120) AS DATETIME) 
       Then 1 
       Else 0 end) 
      as NumberInCurrentWeek 
From InterviewTable 
Where DateUpdated >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE()) 
     AND DateUpdated < CAST(CONVERT(VARCHAR(10), DATEADD(dd, (8 - DATEPART(dw, GETDATE())), GETDATE()), 120) AS DATETIME) 
Group by InterviewStatus 

这只是需要调整到你的确切情况。例如改变8乘以7将捕捉当前的两周。

然后根据查询生成一个简单的表格。

+0

对不起,对于回复迟了,感谢回复会给它一个调整,以适应它我需要创建的报告。 – adminics

+0

只是想知道如果我想在3周内的范围内,我将如何使用此代码表示此?我只需要将8改为6号? – adminics

+0

8将成为8 + 14. – glh

1

如果您只是要计算每个字段的列数,则可以使用sql语句COUNT(),请参阅COUNT()

你可以像这样常见的查询:

SELECT COUNT(fieldName1), COUNT(fieldName2), ... , COUNT(fieldNamen) FROM <tableName> 

也尽量展现你的代码,使您的问题将更加明确。

+0

那么代码将是: SELECT [tblInterviews.Date] FROM [tblInterviews],其中[tblInterviews.Status] =“面试”请求 从那里我想算落在本周的日期,那么接下来字段在右边我想要计算下周计划的所有采访(不包括当前一周) – adminics