SQL Daily Totals

时间:2015-06-15 13:50:38

标签: sql reporting-services ssrs-2008-r2

好的,我想做的是一份ssrs报告,它可以获得每位员工每天看到的客户总数,并列出日复一日的列表。因此,第一行将显示一个月中的每一天,例如第1,第2,第3。第一列应显示员工的姓名。

我很确定我需要使用矩阵来做这件事,但我不确定如何通过列出日期来解决这个问题。如果有人能帮助我,或指出我的方向是正确的,那就太好了。

要添加更多信息,我有一个名为Employees的表,其中包含我要列出的所有员工以及与员工见过的所有客户的表约会。我希望将每个员工在每个月的每一天看到的客户总数与表格顶部列出的日期相同。

例如

      | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th .....
emp1     2     3     5     4     5     5     6
emp2     3     4     5     9     1     3     5
emp3     1     0     0     4     5     9     2
emp4     8     3     7     2     9     3     4

2 个答案:

答案 0 :(得分:1)

If you want your rows to be columns, you need to use pivot like so:

Example:

SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM 
(SELECT PurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [250], [251], [256], [257], [260] )
) AS pvt
ORDER BY pvt.VendorID;

If you want your columns to be rows, you would use UNPIVOT.

答案 1 :(得分:0)

使用矩阵是正确的。
假设您已经有查询选择必要的信息并正确加入:
创建一个列组,按约会日期分组。使用Day(Fields!AppointmentDateTime.Value)格式化列标题以获取1到31之间的值 创建一个行组,按员工分组。在数据单元格中,使用= Count(AppointmentDateTime.Value)总计访问次数 如果此报告将持续数月,请包括按月分组的父列组(Fields!AppointmentDateTime.Value)。您还可以通过右键单击行组中的文本框并选择“添加总计”来添加总计。