0

我正在为 OTRS 票证编写 SSRS 报告,我的挑战如下。我必须确定票证的 SLA 是否与票证打开的日期相同。我的工作周是周一到周五,节假日除外。一天的工作时间为 09:00 至 17:00(共 8 小时)。一些优先票有 2 小时的解决时间,一些非必要票有 5 天的解决时间。如果优先票在周五16:55开出,下周一为节假日,则解决日期应为周二10:55(即该票SLA应落在下一个工作日的工作时间内)

我的 SLA 时间以分钟为单位存储在 ticket_SLA 表中,即(2 小时 = 120 分钟或 5 天 = 2400 分钟)。5天的计算如下:

2400分钟除以60分钟得到小时,除以8得到天数(一个工作日有8小时)

2400/60/8 = 5 天。

确定这一点后,我必须进一步确定票证是否在 SLA 范围内。如果不是,我会在报告上以不同的颜色显示票证。

我应该处理的可用字段如下:

票务表:

Create_time datetime, ticket_sla_id int, tn long,

服务等级表:

sla_Id int, solution_time int (number of minutes)

假期表:

holiday_name varchar, holiday_date, holiday_iD

任何关于我如何解决这个问题的建议将不胜感激。提前致谢

4

1 回答 1

2

对于 TSQL,请查看我在SQLFiddle上的解决方案。如果您使用另一个 DBMS,您应该能够将 sql 转换为您的语法。

提供的解决方案将返回每张票的截止日期。在第一个 CTE 中,您必须定义最小开始日期和最大结束日期。希望有帮助!

请注意 datefirst 的设置(请参阅

@updated : 修改后的小提琴演示

于 2012-12-18T14:13:40.140 回答