我有一个观点
ID S.No DateFr DateTo
--- ----- ------ ---------
1 63 01/01/2010 01/01/2010
1 63 01/01/2010 01/11/2010
2 64 01/01/2010 01/01/2010
2 64 01/01/2010 01/11/2010
3 65 01/01/2010 01/01/2010
3 65 01/01/2010 01/11/2010
现在我想要像
这样的结果ID S.No DateFr DateTo
1 63 01/01/2010 01/11/2010
2 64 01/01/2010 01/11/2010
3 65 01/01/2010 01/11/2010
注意只在记录中更改了DateFr,因此我希望它从一行转换为列。 ID不是固定的,它可以是无限的,不像1,1,1 ------ 30,30,30。我正在使用DB2和ISeries。
答案 0 :(得分:3)
它应该像这样简单:
select id, s.no, min(datefr), max(dateto) from your_table group by id, s.no
答案 1 :(得分:1)
SELECT ID,S.No,dateFr,DateTo FROM your_table GROUP BY ID,S.No,dateFr,DateTo
答案 2 :(得分:1)
使用Max()
,Case When
和Group By
。
在我看来,这种技术被称为“Pivot”或“Crosstab”。
答案 3 :(得分:-1)
您可能希望使用SQL Server PIVOT命令。