select
Users.UserId
,Users.FirstName + ' ' + Users.LastName AS
,[Month]
,[Day]
,x.[Przych]
,x.[Wych]
,x.[Przych] + [Wych] as [Ogół]
from
(select
CaseActionHistory.UserId
,month(CaseActionHistory.DateAdded) AS [Month]
,day(CaseActionHistory.DateAdded) AS [Day]
,sum(case when CaseActionHistory.CaseActionDefinitionId in (14,15,16) then 1 else 0 end) AS [Przych]
,sum(case when CaseActionHistory.CaseActionDefinitionId in (20,21,22,23,26) then 1 else 0 end) AS [Wych]
from CaseActionHistory
where CaseActionHistory.CaseActionDefinitionId in (14,15,16,20,21,22,23,26)
group by month(CaseActionHistory.DateAdded),day(CaseActionHistory.DateAdded), CaseActionHistory.UserId
order by month(CaseActionHistory.DateAdded) DESC,day(CaseActionHistory.DateAdded) DESC
OFFSET 0 rows
) AS x
inner join Users on x.UserId = Users.UserId
我正试图从中耗尽一些东西。我的问题是:此类查询的结果显示如下:
User Month Day X
User1 7 31 6
User2 7 31 7
User3 7 31 9
User1 7 30 8
User2 7 30 7
User3 7 30 8
User4 7 31 10
User5 7 31 20
User6 7 31 23
User4 7 30 5
User5 7 30 7
User6 7 30 65
所以实际上很少有用户被分组到首先显示的小组中,然后是第二组,等等。所以我认为 group by 或 order by 存在问题。
作为补充,我想问一个关于 SQL Server 中参数的问题。下面的代码我想设置3个参数:
User
Month
Day
但我的问题是,当我设置参数的详细信息并运行它时,一些值会相乘。同一用户乘以几次,同一个月,同一天等也报告自己没有对参数内的任何类型的变化做出反应。
报告的主要思想是显示每位员工每天、每月拨打的电话数量,并能够与其他人比较结果。
通话分为:呼出和呼入。在每个电话呼叫之后,员工都会向系统添加有关它是什么电话以及他们在此电话期间设法做了什么的信息。
所以实际上在这种情况下我们正在处理 2 个表:
CaseActionHistory 和用户
所以计划是显示每个人每天的电话数量(呼入、呼出和总和)。
由于 CaseActionHistory 表仅包含执行操作的用户 ID,我想显示此人的姓名(显然放在用户表中)。
问题是报告应该一个一个地显示大约 20 个用户,所以对于 6 月 31 日的 20 个用户一个一个地显示,对于 30 日的 20 个用户一个一个地显示,等等,但它显示 5 个用户代表第 31 个用户,然后显示相同的用户代表第 30 个用户,然后是第 31 个等的下 5 个用户(链接到显示下面情况的图像)
http://img801.imageshack.us/img801/2088/7blu.png
列是:
UserId(将替换为 UserName) Day Month Incming Outgoing Sum
7 月 31 日底部的行应该在列表的顶部,但它们不是。