Sql server 不同日期范围的单独结果
我一直在尝试根据不同的日期范围生成报告。但我编写的查询是将所有结果合并为一个。期望得到4个日期范围的4个结果 附言:我是初学者。任何帮助都将不胜感激Sql server 不同日期范围的单独结果,sql-server,Sql Server,我一直在尝试根据不同的日期范围生成报告。但我编写的查询是将所有结果合并为一个。期望得到4个日期范围的4个结果 附言:我是初学者。任何帮助都将不胜感激 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 != As
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())))
选择
求和(如果IsBlank=1,则为1,否则为0结束)作为空白聊天,
作为ConvertedChats的总和(LeadID>0时为1,否则为0结束),
总和(当PickedUpBy!=AssignedToAgent且AssignedToAgent>0且PickedUpBy>0时,则为1,否则为0结束)作为MissedChats,
作为AssignedChats的总和(如果AssignedToAgent>0,则为1,否则为0结束),
作为销售线索的总和(LeadType=1时为1,否则为0结束)
从…起
与(诺洛克)聊天
leads.id=chats.leadid上的左连接leads
哪里
(chats.createdon>=DATEADD(d,0,DATEDIFF(d,0,GETDATE())和chats.createdon=DATEADD(d,-1,DATEDIFF(d,0,GETDATE())和chats.createdon=DATEADD(d,-7,DATEDIFF(d,0,GETDATE())和chats.createdon=DATEADD(d,--8,DATEDIFF(d,0,GETDATE())和chats.createdOn如果您想要查询4行,您需要将日期范围作为case语句添加到select中,然后按该case语句分组。然后,您应该为您的case创建的每个值获取一行-在这种情况下,这应该是您希望统计数据按其拆分的日期范围。如果您想要查询4行,您将l需要将日期范围添加到SELECT语句中,然后按该case语句进行分组。然后,您应该根据您的情况创建一个值行,在这种情况下,您应该希望统计数据被拆分的日期范围。如果您需要4个结果集,则需要创建4个查询。在养成乱丢数据库的习惯之前,请先删除nolock提示。它所做的坏事远不止是脏读。请显示查询的示例结果和预期结果。您可能会发现将日期表添加到数据库中很有用。您可以在该表中包含一列,以便按其分组。如果您需要4个结果集你需要创建4个查询。既然你正在学习,你可能会考虑在你习惯于用它乱丢你的数据库之前去掉那个NoLoCo提示。它比简单的脏读取更为险恶。请从你的查询和预期结果中显示示例结果。你可能会发现将日期表添加到D中是有用的。b、 您可以在该表中包含一列,以便按其分组。