Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 不同日期范围的单独结果_Sql Server - Fatal编程技术网

Sql server 不同日期范围的单独结果

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

我一直在尝试根据不同的日期范围生成报告。但我编写的查询是将所有结果合并为一个。期望得到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 != 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、 您可以在该表中包含一列,以便按其分组。