如何将多行中的数据聚合到一个跨多个列的数据中?

时间:2014-08-18 12:40:58

标签: mysql sql-server common-table-expression denormalization row-number

我在我的数据库中有这个表,我希望将来自多行的数据聚合成一个分布在多个列中的数据:

ID     PID        date              time
1      12         10/04/2014        7:00
2      12         10/04/2014        10:00
3      12         10/04/2014        15:00
4      13         10/04/2014        7:00
5      13         10/04/2014        15:00
6      12         11/04/2014        7:20
7      12         11/04/2014        15:10
8      13         11/04/2014        7:10
9      13         11/04/2014        7:50
10     13         11/04/2014        15:00
11     13         11/04/2014        15:50

PID是员工ID,具体来说就是出勤系统。 我需要提取这种格式并将此表单插入另一个表中:

ID      PID      date               time1          time2         time3       time4
1       12       10/04/2014         7:00           10:00         15:00
2       13       10/04/2014         7:00           15:00
3       12       11/04/2014         7:20           15:10
4       13       11/04/2014         7:10           7:50          15:00       15:50   

1 个答案:

答案 0 :(得分:0)

虽然评论中所述的问题是有效的,但我认为您有充分的理由满足您的具体要求。

此解决方案适用于MSSQL:

SQL Fiddle, MSSQL 2008+

此解决方案适用于MySQL:

SQL Fiddle, MySQL 5.5.32

相关问题