我必须加入三个表:
案例数据表-每个案例编号都有一个唯一的行 指标表-案例编号可能有多行 任务SLA表-案例号可能有多行
我必须以一种在最终表中不对行进行任何复制的方式加入这些文件。
最终表应包含具有唯一案例编号的行,以及案例数据表中的所有列, 指标表中每种情况的“已创建”列, 以及SLA表的“经过时间”和“剩余时间”列。
但是要删除重复项,我们必须仅从Metric和SLA表中选择一条记录。
针对每种情况选择此记录的标准是:
指标表-为每个案例选择最少的“创建”日期。
任务SLA表-为每种情况选择与“开始日期”的最大值相对应的“经过时间”和“剩余时间”的值。
我能够使用以下查询实现第一个联接(联接是使用SUBSTRING在Case Data和Metric表之间创建的,因为在Metric表的Case编号之前附加了'Case:'):
SELECT cd.Number, cd.Channel, cd.[State], cd.[Priority], cd.[Affected User], cd.Organization,
cd.Contact, cd.Client, cd.Product, cd.Category, cd.Subcategory, cd.[Ticket Summary], cd.[Case Type],
cd.[Case Aging], cd.Resolved, cd.Closed, cd.[Follow up], cd.Opened, cd.[Made SLA], cd.[SLA due], cd.[Schedule Follow Up],
cd.[Resolution code], cd.[L2/L3 User], cd.Updated,
Min(Created) AS 'First Response' FROM [dbo].[Support Dashboard Case Data] cd
JOIN [dbo].[Metric Data] md ON cd.Number = SUBSTRING(md.ID,7,LEN(md.ID))
group by cd.Number, cd.Channel, cd.[State], cd.[Priority], cd.[Affected User], cd.Organization,
cd.Contact, cd.Client, cd.Product, cd.Category, cd.Subcategory, cd.[Ticket Summary], cd.[Case Type],
cd.[Case Aging], cd.Resolved, cd.Closed, cd.[Follow up], cd.Opened, cd.[Made SLA], cd.[SLA due], cd.[Schedule Follow Up],
cd.[Resolution code], cd.[L2/L3 User], cd.Updated
如何在此处合并第二个联接?
答案 0 :(得分:0)
使用row_number()
select * from
(
SELECT cd.Number, cd.Channel, cd.[State], cd.[Priority], cd.[Affected User], cd.Organization,
cd.Contact, cd.Client, cd.Product, cd.Category, cd.Subcategory, cd.[Ticket Summary], cd.[Case Type],
cd.[Case Aging], cd.Resolved, cd.Closed, cd.[Follow up], cd.Opened, cd.[Made SLA], cd.[SLA due], cd.[Schedule Follow Up],
cd.[Resolution code], cd.[L2/L3 User], cd.Updated,Created 'First Response',row_number() over(partition by cd.number order by created desc) as rn
FROM [dbo].[Support Dashboard Case Data] cd
JOIN [dbo].[Metric Data] md ON cd.Number = SUBSTRING(md.ID,7,LEN(md.ID))
)A where rn=1