【发布时间】:2018-12-01 08:59:03
【问题描述】:
您好,提前谢谢您!我有以下查询来检索我需要的表(以绿色突出显示)。顶部 select 语句获取 min(eventdate),底部 select 语句(即 Unioned)获取 min(eventdate) 和 max(eventdate) 的串联。这是最重要的维护。这可以很好地返回数据,但现在我不得不将其余数据加入到该表中(以红色突出显示)。
我怎样才能加入而不必对我的所有列进行分组并丢失一些数据。如果您查看图像,您可以看到返回的数据,因为不需要对事件时间进行分组,它们都是一样的。但是,情况并非总是如此,即使对于相同的 ID,事件时间也会发生变化。对此的任何帮助将不胜感激。
(Select id,__DisplayName, LEFT(cast(min(EventDate) as varchar), len(min(eventdate)) -7)Eventdate from SP_HS_Marketing_ExtEvents WHERE __ApprovalStatus = 'Approved' and __EventType not in ('1','-1','-2')
group by ID, __DisplayName
Union ALL
Select id,__DisplayName,
LEFT(cast(min(EventDate) as varchar), len(min(eventdate)) -7) + ' - ' + LEFT(cast(max(EventDate) as varchar), len(max(eventdate)) -7) Eventdate from SP_HS_Marketing_ExtEvents WHERE __ApprovalStatus = 'Approved' and __EventType = -2
group by ID, __DisplayName)
【问题讨论】:
-
请不要发布图片。发布纯文本并将其格式化为表格数据的“代码”。
标签: sql sql-server max left-join min