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
実際には、最初に表示される小さなグループにグループ化され、次に2番目のグループなどにグループ化されるユーザーはほとんどいないため、グループ化または順序付けに問題があると思います。
補足として、SQL Server のパラメータについて質問したいと思います。以下のコードから、3 つのパラメーターを設定したいと思います。
User
Month
Day
しかし、私の問題は、パラメーターの詳細を設定して実行すると、いくつかの値が乗算されることです。同じユーザーが数回、同じ月、同じ日などに乗算されます。レポート自体は、パラメーター内のいかなる種類の変更にも反応しません。
レポートの主な目的は、すべての従業員が毎日、毎月行った電話の数を示し、結果を他の従業員と比較できるようにすることです。
コールは、発信と着信に分割されます。すべての電話の後、従業員は、それがどのような電話であり、この電話中に何をしたかに関する情報をシステムに追加します。
したがって、実際には、この場合は 2 つのテーブルで作業しています。
CaseActionHistory とユーザー
そのため、計画は、すべての人の毎日の電話の数 (着信、発信、およびそれらの合計) を表示することでした。
CaseActionHistory テーブルは、アクションを実行した User の ID のみを構成するため、その人の名前を表示したいと思います (これは明らかに Users テーブルに配置されます)。
問題は、レポートが約 20 ユーザーを 1 つずつ表示する必要があることです。つまり、6 月 31 日は 20 ユーザーが 1 つずつ、30 日は 20 ユーザーが 1 つずつなどですが、31 日は 5 ユーザー、30 日は同じユーザーのように表示されます。次に 31 日などの 5 ユーザー (以下の状況を示す画像へのリンク)
http://img801.imageshack.us/img801/2088/7blu.png
列は次のとおりです。
UserId (UserName に置き換えられます) 日 月 受信 送信 合計
7 月 31 日の一番下の行はリストの一番上にあるはずですが、そうではありません。