工作时间的SQL查询

时间:2014-05-23 10:55:36

标签: sql tsql

我正在尝试创建SQL查询来执行以下操作:

企业需要记录指令后两小时内接听的电话数量。可以在1630年从外部公司收到指令,但只要在第二天1030之前向外部公司发出回电,那么这将被视为在2小时内返回(假设工作日为0900-1700) 。这变得更加困难,因为工作日也需要在周末考虑因素,星期五1630的电话可以在周一1030返回,并且仍然算在2小时内返回

到目前为止,我编写了以下SQL代码:

WITH checkcalllogs 
AS (SELECT ( Datediff(hour, Dateadd(s, ( Datediff(s, '19700101', hdc.date09) 
+ hdc.number09 ), '19700101'), 
Dateadd(s, ( Datediff(s, '19700101', cc.origdate) + cc.origtime ),
'19700101')) ) AS CallReturnTime
 FROM   hdcase AS hdc 
 INNER JOIN crmcall AS cc 
 ON hdc.hdcasenum = cc.key1 
 AND hdc.company = cc.company 
 WHERE  callseqnum = 1) 
 SELECT callreturntime AS [Num of Calls Returned <= 2 Hours]
 FROM   checkcalllogs 
 WHERE  callreturntime <= 2 

这将返回2小时内返回的呼叫数,但不适用于营业时间或周末。

我已经考虑过使用案例来消除17:00到09:00之间16小时的时差,但我很难得到我想要的结果。

配置此SQL查询以返回工作时间内2小时内返回的调用的最佳方法是什么?

0 个答案:

没有答案