按日期分组与SQL查询?

时间:2010-11-26 10:17:08

标签: sql group-by db2 ibm-midrange

我有一个观点

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。

4 个答案:

答案 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 WhenGroup By

在我看来,这种技术被称为“Pivot”或“Crosstab”。

答案 3 :(得分:-1)

您可能希望使用SQL Server PIVOT命令。

Check this out