【发布时间】:2018-02-12 11:16:47
【问题描述】:
我有一个包含订单 ID 和日期列的表,我需要将 enddate 列的最大值放入一个新列中。下面的示例
ID OrderId StartDate begindate enddate
1 2345 06/07/2011 20/08/2011 12/07/2012
2 2345 05/07/2012 11/07/2012 13/01/2014
3 2345 21/05/2014 28/10/2013 27/05/2015
4 2345 23/05/2015 03/06/2015 02/06/2017
5 2345 27/03/2017 20/06/2017 NULL
所以我想得到我的输出是:
需要的输出
ID OrderId StartDate begindate enddate LastEnddate
1 2345 06/07/2011 20/08/2011 12/07/2012 NULL
2 2345 05/07/2012 11/07/2012 13/01/2014 NULL
3 2345 21/05/2014 28/10/2013 27/05/2015 NULL
4 2345 23/05/2015 03/06/2015 **02/06/2017** NULL
5 2345 27/03/2017 20/06/2017 NULL **02/06/2017**
最大EndDate 应该在Lastenddate 列中,其中Enddate 为NULL
我已经尝试创建临时表并应用密集排名,但我仍然缺少一些东西,你能帮忙吗?
我正在将来自temptable 的查询写成
SELECT id, orderid
, CASE WHEN MAX(CASE WHEN Lasttenddate IS NULL THEN 1 ELSE 0 END) = 0 THEN MAX(enddate) END
FROM #Test
WHERE
orderid = 2345
GROUP BY id, orderid
提前致谢。
【问题讨论】:
标签: sql sql-server ssis max temp-tables