0
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 日の一番下の行はリストの一番上にあるはずですが、そうではありません。

4

1 に答える 1