2016-09-16 28 views
1

異なる日付範囲に基づいてレポートを生成しようとしています。しかし、私が書いた質問は、すべての結果を1つにまとめることです。 4つの日付範囲で4つの結果が得られることを期待します。異なる日付範囲で別々の結果を返します

PS:私は初心者です。どんな助けもありがとう。

select 
    sum(case when IsBlank = 1 then 1 else 0 end) as BlankChats, 
    sum(case when LeadID > 0 then 1 else 0 end) as ConvertedChats, 
    sum(case when PickedUpBy != AssignedToAgent and AssignedToAgent > 0 and PickedUpBy > 0 then 1 else 0 end) as MissedChats, 
    sum(case when AssignedToAgent > 0 then 1 else 0 end) as AssignedChats, 
    sum(case when LeadType=1 then 1 else 0 end) as SalesLeads 
from 
    chats with (nolock) 
    left join leads on leads.id=chats.leadid 
where 
    (chats.createdon >= DATEADD(d,0,DATEDIFF(d,0,GETDATE())) and chats.createdOn <= DATEADD(MI, -1*30, GETDATE())) 
OR 
    (chats.CreatedOn >= DATEADD(d, -1, DATEDIFF(d, 0, GETDATE())) and chats.createdOn <= DATEADD(MI, -1*30, DATEADD(d, -1, GETDATE()))) 
OR 
    (chats.CreatedOn >= DATEADD(d, -7, DATEDIFF(d, 0, GETDATE())) and chats.createdOn <= DATEADD(MI, -1*30, DATEADD(d, -7, GETDATE()))) 
OR 
    (chats.CreatedOn >= DATEADD(d, -8, DATEDIFF(d, 0, GETDATE())) and chats.createdOn <= DATEADD(MI, -1*30, DATEADD(d, -8, GETDATE()))) 
+2

4つの結果セットが必要な場合は、4つのクエリを作成する必要があります。そしてあなたが学んでいるので、あなたはそれを使ってあなたのデータベースを捨てる習慣に入る前に、そのノーロックのヒントを取り除くことを検討するかもしれません。それは単に汚い読書よりはるかに不吉なことをします。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –

+1

クエリのサンプル結果と期待される結果を表示してください – TheGameiswar

+0

データベースに日付テーブルを追加すると便利です。グループ化するには、そのテーブル内に列を含めることができます。 –

答えて

0

あなたのクエリの4行が必要な場合は、そのcase文で、あなたの選択し、そのグループにcase文として日付範囲を追加する必要があります。あなたのケースで作成された値ごとの行を取得する必要があります。この場合は、統計を分割する日付範囲にする必要があります。

関連する問題