sqlserver-sql 个人写过最长sql记录 192行

#获取当前日期前面30天的日期

select convert(varchar(10),dateadd(dd,number,dateadd(month,-1,getdate())),120) as cr_date
	from master..spt_values 
	where type='P' and 
	dateadd(dd,number,dateadd(month,-1,getdate()))<=getdate()





# 1, Total_call 最近30天每日创建工单数量 【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';


select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
	COUNT(TICKET_ID) Total_call
from 
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	and person1_root_org_name = @kehu
group by 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);
 

 
#2,  Uniclosed 最近30天状态为开着的未关单数量,已创建时间排序 【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';

select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
	COUNT(TICKET_ID) Uniclosed
from 
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and TICKET_STATUS IN ('Active','New','Queued') and person1_root_org_name = @kehu
group by 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);


#3, Scheduled  最近30天每天应到期工单数量且  工单状态为未关 (按照到期时间排序)【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';

SELECT
	a.cr_date,
	COUNT ( TICKET_ID ) Scheduled 
from
		(Select CONVERT (VARCHAR ( 10 ),
		DATEADD(SECOND, (select top 1 sla_due_by from VSLA_AGREEMENT_COMPLIANCE_LIST_UX as vc where vc.item_id=vi.ROW_ID order by threshold_sort_order desc), 	'1970/1/1 08:00:00') ,120) as 'cr_date',
	vi.TICKET_ID
	from VAPP_ITEM as vi where  person1_root_org_name = @kehu and TICKET_STATUS not in ('closed') and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,vi.CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30) as a
GROUP BY 
	a.cr_date
 


#4, P1_call 最近30天工单优先级最高的数量(按照创建时间排序)【已完成】

declare @kehu VARCHAR(20)
set @kehu ='WTC';


select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	count(TICKET_ID) P1_call
from
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and Ticket_priority='P2'
	and person1_root_org_name = @kehu
GROUP BY 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)



#5 ,Over_SLA 最近30天工单状态已超时工单数量 按照创建时间排序 【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';


select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	count(TICKET_ID) Over_SLA
from
	VAPP_ITEM
where 
	sla_compliance_status_indicator='Breached SLA' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and person1_root_org_name = @kehu
GROUP by 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)


#6,SLA_Met 最近30天达成率 按照创建时间排序 公式(totalcall - uniclosed - oversla)/(totalcall - uniclosed ) 【已完成】

#每日sla达成数量
declare @kehu VARCHAR(20)
set @kehu ='WTC';

select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
	COUNT(TICKET_ID) SLA_Met
from 
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
 AND TICKET_STATUS NOT IN ('Active','New','Queued') AND sla_compliance_status_indicator NOT IN ('Breached SLA')
 and person1_root_org_name = @kehu
group by 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);
 
#sla达成率的分母
declare @kehu VARCHAR(20)
set @kehu ='WTC';

select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
	COUNT(TICKET_ID) SLA_Met
from 
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
 and TICKET_STATUS NOT IN ('Active','New','Queued')
 and person1_root_org_name = @kehu
group by 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);
 
#SLA_Met sla达成率 
declare @kehu VARCHAR(20)
set @kehu ='WTC';

select 
	a.cr_date,
	(a.xjsl/b.gdsl) SLA_Met
from
		(select 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
		COUNT(TICKET_ID) xjsl
	from 
		VAPP_ITEM
	where 
		datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	 AND TICKET_STATUS NOT IN ('Active','New','Queued') AND sla_compliance_status_indicator NOT IN ('Breached SLA')
	 and person1_root_org_name = @kehu
	group by 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)) as a 
	 join 
	(select 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
		COUNT(TICKET_ID) gdsl
	from 
		VAPP_ITEM
	where 
		datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	 and TICKET_STATUS NOT IN ('Active','New','Queued')
	 and person1_root_org_name = @kehu
	group by 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)) as b 
	 on a.cr_date=b.cr_date;





#7,Worst_TAT 最近30天每天工单处理花费最大时间 【已完成】
#原理 1,以创建时间排序 2,关单时间- 创建时间 3,工单状态为关闭 4,当天最大值
declare @kehu VARCHAR(20)
set @kehu ='WTC';



select 
	b.cr_date,
	max(b.zd) Worst_TAT
from 
	(select CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	convert(varchar(10),(DATEADD(S,CLOSED_DATE,'1970/1/1 08:00:00') -DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),108) zd
	from
	VAPP_ITEM
	where TICKET_STATUS='Closed' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	and person1_root_org_name = @kehu
	) b
group by 
	b.cr_date;



#8,Avg_onsite_time 最近30天平均上门时间  只计算有第一次上门时间的工单 【已完成】
#单位是小时
declare @kehu VARCHAR(20)
set @kehu ='WTC';



select t.cr_date,avg(t.avg_onsitetime) Avg_onsite_time 
from
(
select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	DATEDIFF(hh,DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00'),(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.ROW_ID and va.ATTR_ID=553)) avg_onsitetime
from
	VAPP_ITEM as vi
where 
	(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.ROW_ID and va.ATTR_ID=553) is not null 
	and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	and person1_root_org_name = @kehu
) as t
group by t.cr_date;



#9, No_onsite_time 最近30天没有上门时间的工单数量且ccti=hw 按照创建时间排序 【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';



select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	COUNT(TICKET_ID) No_onsite_time
from
	VAPP_ITEM as vi
where 
	(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.ROW_ID and va.ATTR_ID=553) is null 
	and CCTI_CLASS='HW' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	and person1_root_org_name = @kehu
GROUP BY 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);

#10,Onsite_1 最近30天 重复上门工单数量 统计有第二次和第三次上门时间的工单 按照创建时间分组 【已完成】
declare @kehu VARCHAR(20)
set @kehu ='WTC';



select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	COUNT(TICKET_ID) Onsite_1
from
	VAPP_ITEM as vi
where 
	(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=row_id and va.ATTR_ID=555) is not null and (SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=row_id and va.ATTR_ID=558) is not null and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
	and person1_root_org_name = @kehu
GROUP BY 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120);





---------------------------------------------------------------------------------------------------------


#综合报表
	t1.cr_date 日期,
	
declare @kehu VARCHAR(20)
set @kehu ='WTC';

select 
	t2.Total_call,
	t3.Uniclosed,
	t4.Scheduled,
	t5.P1_call,
	t6.Over_SLA,
	datename(day,t1.cr_date) 日期,
	t7.SLA_Met,
	t8.Worst_TAT,
	t9.Avg_onsite_time,
	t10.No_onsite_time,
	t11.Onsite_1
from
	(select convert(varchar(10),dateadd(dd,number,dateadd(month,-1,getdate())),120) as cr_date
	from master..spt_values 
	where type='P' and 
	dateadd(dd,number,dateadd(month,-1,getdate()))<=getdate()) 
	as t1 
left join 
	(select 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
		COUNT(TICKET_ID) Total_call
	from 
		VAPP_ITEM
	where 
		datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
		and person1_root_org_name = @kehu
	group by 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
	)
	as t2 
	on t1.cr_date=t2.cr_date
left join 
	(
	select 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
		COUNT(TICKET_ID) Uniclosed
	from 
		VAPP_ITEM
	where 
		datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and TICKET_STATUS IN ('Active','New','Queued') and person1_root_org_name = @kehu
	group by 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
	)
	as t3 
	on t1.cr_date=t3.cr_date 
left join 
	(
	SELECT
		a.cr_date,
		COUNT ( TICKET_ID ) Scheduled
	from
			(Select CONVERT (VARCHAR ( 10 ),
			DATEADD(SECOND, (select top 1 sla_due_by from VSLA_AGREEMENT_COMPLIANCE_LIST_UX as vc where vc.item_id=vi.ROW_ID order by threshold_sort_order desc), 	'1970/1/1 08:00:00') ,120) as 'cr_date',
		vi.TICKET_ID
		from VAPP_ITEM as vi where  person1_root_org_name = @kehu and TICKET_STATUS not in ('closed') and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,vi.CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30) as a
	GROUP BY 
		a.cr_date
	)
	as t4  
	on t1.cr_date=t4.cr_date
left join 
	(select 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
	count(TICKET_ID) P1_call
from
	VAPP_ITEM
where 
	datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and Ticket_priority='P2'
	and person1_root_org_name = @kehu
GROUP BY 
	CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
	)
	as t5
	on t1.cr_date=t5.cr_date
left join
	(
	select 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
		count(TICKET_ID) Over_SLA
	from
		VAPP_ITEM
	where 
		sla_compliance_status_indicator='Breached SLA' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30 and person1_root_org_name = @kehu
	GROUP by 
		CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
	)
 as t6
 on t1.cr_date=t6.cr_date
left join
		(
		select 
		a.cr_date,
		(a.xjsl/b.gdsl) SLA_Met
	from
			(select 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
			COUNT(TICKET_ID) xjsl
		from 
			VAPP_ITEM
		where 
			datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
		 AND TICKET_STATUS NOT IN ('Active','New','Queued') AND sla_compliance_status_indicator NOT IN ('Breached SLA')
		 and person1_root_org_name = @kehu
		group by 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)) as a 
		 join 
		(select 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date, 
			COUNT(TICKET_ID) gdsl
		from 
			VAPP_ITEM
		where 
			datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
		 and TICKET_STATUS NOT IN ('Active','New','Queued')
		 and person1_root_org_name = @kehu
		group by 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)) as b 
		 on a.cr_date=b.cr_date
		)
	as t7
	on t1.cr_date=t7.cr_date
left join
		(
		select 
		b.cr_date,
		max(b.zd) Worst_TAT
	from 
		(select CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
		convert(varchar(10),(DATEADD(S,CLOSED_DATE,'1970/1/1 08:00:00') -DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),108) zd
		from
		VAPP_ITEM
		where TICKET_STATUS='Closed' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
		and person1_root_org_name = @kehu
		) b
	group by 
		b.cr_date
		)
	as t8
	on t1.cr_date=t8.cr_date
left join
			(
			select t.cr_date,avg(t.avg_onsitetime) Avg_onsite_time
		from
		(
		select 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
			DATEDIFF(hh,DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00'),(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.ROW_ID and va.ATTR_ID=553)) avg_onsitetime
		from
			VAPP_ITEM as vi
		where 
			(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.ROW_ID and va.ATTR_ID=553) is not null 
			and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
			and person1_root_org_name = @kehu
		) as t
		group by t.cr_date
			)
	as t9
	on t1.cr_date=t9.cr_date
left join 
		(
		select 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
			COUNT(TICKET_ID) No_onsite_time
		from
			VAPP_ITEM as vi
		where 
			(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=vi.		ROW_ID and va.ATTR_ID=553) is null 
			and CCTI_CLASS='HW' and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
			and person1_root_org_name = @kehu
		GROUP BY 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
		)
	as t10
	on t1.cr_date=t10.cr_date
left join
		(
		select 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120) cr_date,
			COUNT(TICKET_ID) Onsite_1
		from
			VAPP_ITEM as vi
		where 
			(SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=row_id and va.ATTR_ID=555) is not null and (SELECT TOP 1 DATEADD(SECOND, CONVERT(INT, ATTR_VALUE), '1970/1/1 08:00:00') FROM VAPP_ITEM_ATTRIBUTES as va WHERE va.ITEM_ID=row_id and va.ATTR_ID=558) is not null and datediff(dd,CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120),GETDATE())<=30
			and person1_root_org_name = @kehu
		GROUP BY 
			CONVERT(VARCHAR(10),(DATEADD(S,CREATED_DATE,'1970/1/1 08:00:00')),120)
		)
	as t11
	on t1.cr_date=t11.cr_date;
 
 
 
 
 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值