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())))
如果你想要4个结果集,你需要创建4个查询。而且,由于你只是在学习,你可能会考虑在你习惯使用它抛弃数据库之前摆脱那个nolock暗示。它比简单的肮脏的读取做得更危险。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –
请显示来自您的查询和预期结果的示例结果 – TheGameiswar
您可能会发现将日期表添加到您的数据库很有用。您可以在该表格中包含一个列来分组。 –