1

示例表:

(列标题) 每个人的总采访 --- (行标题) 要求采访

列标题)本周的采访次数——(行值)计算本周安排的所有状态为:“已请求采访”的日期,例如 4

列标题)下周的面试次数——(行值)计算下周安排的所有状态为:“已申请面试”的日期,例如 6

首先,我想对我的临时桌子表示歉意,因为我是新成员,所以我似乎不能使用图片。

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

就像我在名为“本周采访次数”的临时字段中所说的那样,我希望根据日期字段计算本周、下周、前一周等安排的所有日期。然后,我计划分解这张表,显示一个人安排的所有采访。

我遇到的问题是会有很多日期跨越不同的月份/日期。因此,我不确定如何使用 DateDiff 或其他日期功能来表示这一点,因为该表旨在成为当前采访的实时表示。

我正在尝试使用报表生成器来做些什么吗?如果是这样,任何提示都会很棒,如果不是,那么感谢您花时间查看我的问题。

作为请求的数据集字段:

[UserName](用户表)、[InterviewStatus](面试表)、[DateUpdated](面试表)

这些是将在报告中使用的主要内容

4

2 回答 2

1

如果只想统计每个字段的列数,可以使用 sql 语句COUNT()查看COUNT()

您可以像这样执行常见查询:

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

还要尝试显示您的代码,以便您的问题更加清晰。

于 2013-01-24T12:25:55.807 回答
0

您可以在 where 子句中使用面试表中的通用 select 语句过滤当前周开始和下周结束之间的日期。

如果日期在当前周或下周内,则这两个字段的总和将为 1。

编辑: 下面的示例将给出本周内的日期数。取自另一个问题

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 将捕获当前两周。

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

于 2013-01-25T11:28:43.863 回答