SQL Server group by with inline SQL



我试图结合下面的两个查询。你知道怎么…我不能简单地在第一个查询中添加group by。

第一个返回两个日期中的最大日期,但是表为每种情况保存多行。因此,第二个查询是返回每个case的最大日期。

Select ID, CaseNo, 
(SELECT MAX(v) FROM (VALUES (DateOne), (DateTwo)) AS value(v)) as [DateMain]
Into #TMP1
From Table1
SELECT CaseNo, MAX(DateMain)[DateMain] 
FROM #TMP1 as [DateMain]
GROUP BY DateMain

这行不通:

Select ID, CaseNo, 
(SELECT MAX(v) FROM (VALUES (DateOne), (DateTwo)) AS value(v)) as [DateMain]
Into #TMP1
From Table1
Group by CaseNo

您必须聚合DateOne和DateTwo以便与GROUP BY子句一起使用,分区可能在您的查询中为此工作。但是,您还必须聚合比较的结果,以便使用您的结果集。

Select ID, CaseNo, 
MAX((SELECT MAX(v) FROM (VALUES (MAX(DateOne)), (MAX(DateTwo))) AS value(v))) OVER( PARTITION BY ID, CaseNo) as [DateMain],
MAX(DateSettled)
Into #TMP1
From Table1

最新更新