【发布时间】:2019-03-14 10:17:46
【问题描述】:
我必须加入三个表:
案例数据表 - 每个案例编号都有一个唯一的行 度量表 - 一个案例编号可能有多行 任务 SLA 表 - 一个案例编号可能有多行
我必须以一种不会在最终表中复制任何行的方式加入这些行。
最终表格应包含具有唯一案例编号的行和案例数据表中的所有列, 度量表中每个案例的“已创建”列, 以及 SLA 表的“已用时间”和“剩余时间”列。
但要消除重复,我们必须从 Metric 和 SLA 表中只选择一条记录。
为每个案例选择此记录的标准是:
指标表 - 为每个案例选择“创建”日期的最小值。
任务 SLA 表 - 选择与每个案例的“开始日期”最大值相对应的“已用时间”和“剩余时间”的值。
我能够使用以下查询实现第一个连接(连接是使用 SUBSTRING 在案例数据和度量表之间创建的,因为在度量表中的案例编号之前附加了“案例:”):
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
如何在此处合并第二个联接?
【问题讨论】:
标签: sql-server join