SQL Server按日期合并多个列

时间:2014-05-19 12:39:49

标签: sql sql-server pivot

我的SQL Server数据库中有以下表格,需要将等效日期时间的不同结果转换为单行。

+---------+---------+-------+---------------------+
|  Path   | Counter | Value |      Datetime       |
+---------+---------+-------+---------------------+
| Server1 | FreeMB  |  1024 | 2014-05-19 10:54:00 |
| Server1 | % Free  |    10 | 2014-05-19 10:54:00 |
| Server2 | FreeMB  |   512 | 2014-05-19 10:54:00 |
| Server2 | % Free  |     8 | 2014-05-19 10:54:00 |
| Server1 | FreeMB  |  2048 | 2014-05-19 10:44:00 |
| Server1 | % Free  |    20 | 2014-05-19 10:44:00 |
| Server2 | FreeMB  |  1024 | 2014-05-19 10:44:00 |
| Server2 | % Free  |    16 | 2014-05-19 10:44:00 |
| Server1 | % Free  |    30 | 2014-05-19 10:34:00 |
| Server1 | FreeMB  |  3072 | 2014-05-19 10:34:00 |
| Server2 | FreeMB  |  1536 | 2014-05-19 10:34:00 |
| Server2 | % Free  |    24 | 2014-05-19 10:34:00 |
| Server1 | FreeMB  |  4096 | 2014-05-19 10:24:00 |
| Server1 | % Free  |    40 | 2014-05-19 10:24:00 |
| Server2 | FreeMB  |  2048 | 2014-05-19 10:24:00 |
| Server2 | % Free  |    32 | 2014-05-19 10:24:00 |
+---------+---------+-------+---------------------+

我需要以下输出:

+---------------------+---------+--------+--------+
|      Datetime       |  Path   | FreeMB | % Free |
+---------------------+---------+--------+--------+
| 2014-05-19 10:54:00 | Server1 |   1024 |     10 |
| 2014-05-19 10:54:00 | Server2 |    512 |      8 |
| 2014-05-19 10:44:00 | Server1 |   2048 |     20 |
| 2014-05-19 10:44:00 | Server2 |   1024 |     16 |
| 2014-05-19 10:34:00 | Server1 |   3072 |     30 |
| 2014-05-19 10:34:00 | Server2 |   1536 |     24 |
| 2014-05-19 10:24:00 | Server1 |   4096 |     40 |
| 2014-05-19 10:24:00 | Server2 |   2048 |     32 |
+---------------------+---------+--------+--------+

SQL查询的任何想法都可以这样做吗?

提前致谢!

this case不同,因为输出中有多行,并按日期时间进行分组。

0 个答案:

没有答案