【发布时间】:2016-03-07 06:19:06
【问题描述】:
如果我有日期和时间相同或不同的数据,如下所示:
ID Date LOC
1 2015-12-02 10:05 A
1 2015-12-02 10:05 B2
2 2015-12-02 10:05 D
2 2015-12-02 10:05 A7P
2 2015-12-02 10:06 AD
有没有办法显示以下内容:
ID DATE1 LOC1 DATE 2 LOC2 DATE 3 LOC3
1 2015-12-02 10:05 A 2015-12-02 10:05 B2
2 2015-12-02 10:05 D 2015-12-02 10:05 A7P
2 2015-12-02 10:06 AD
所以会有多行 ID 相同但日期和时间不同的行?
我使用了下面的分区示例,这非常适合我最初要求的将数据放入一行。但是当ID相同但日期和时间不同时,是否可以显示多行。
以下是已回答的原始问题..
我查看了与此问题相关的所有答案,但找不到任何有效的代码,而且很多问题都与两个表有关。
我有一个表,其中包含多行数据和包含不同数据类型的多列,例如
ID Date LOC
1 2015-11-05 10:05 A
1 2015-12-02 10:06 B2
2 2015-12-02 10:05 D
2 2015-12-02 10:05 A7P
2 2015-12-02 10:06 AD
我只要求每个 ID 有一行,所有数据位于多列中,例如
ID DATE1 LOC1 DATE 2 LOC2 DATE 3 LOC3
1 2015-11-05 10:05 A 2015-12-02 10:06 B2
2 2015-12-02 10:05 D 2015-12-02 10:05 A7P 2015-12-02 10:06 AD
这些可以有重复的数据和同一 ID 的一行或多行。
我已经尝试了一些数据透视/取消数据透视 sql 代码,但我得到一个关于 unpivot 中不同类型的错误。
任何帮助将不胜感激。
【问题讨论】:
-
你最多有 3 对柱子吗?
-
嗨。它会有所不同,最多可能有 6 个。
-
如果您希望 id 和 datetime 匹配,那么只需将其包含在连接中即可。连接是使事情保持在同一行的原因。
-
谢谢霍根。我试过了,它们仍然显示在不同的行上。但是当我将日期添加到“PARTITION BY ID,日期”时,它起作用了
-
是的,这是有道理的,但请确保将日期添加到联接中,否则您可能会遇到错误——我更改了答案中的代码。
标签: sql sql-server-2008