我正在尝试找到一种基于ID号组合不同行的方法。
以下是一组示例行:
ID |status |Time
12345| 4 | 1:23
12345| 2 | 2:30
12345| 6 | 2:40
12345| 9 | 3:00
这些ID是相同的,所以我想将它们组合在一起,但仍然有每个状态的个别时间显示。我在想这样的事情:
ID | Status 2 | Status 2 Time | Status 4 | Status 4 time | etc
12345| 2 | 2:30 | 4 | 1:23 | etc
这有可能吗?如果有另一种方式来连接这些ID会更容易,也会更好。谢谢!
答案 0 :(得分:2)
因此,当可用状态仅在集合4,2,6或9中时,这将转动您的数据。如果您不知道此列中的值是什么,则需要构建并执行pivot作为动态sql。堆栈溢出中有这样的例子。
-------------------------
--test data schema
DECLARE @tempdata as TABLE(ID int, [status] int, [time] time)
insert into @tempdata values
(12345, 4, '1:23'),
(12345, 2, '2:30'),
(12345, 6, '2:40'),
(12345, 9, '3:00'),
-- some extra data to show what happens with another id
(12346, 4, '6:23'),
(12346, 2, '7:30'),
(12346, 6, '7:40'),
(12346, 9, '8:00')
-------------------------
--The query
SELECT *
FROM
(SELECT * FROM @tempdata) t
PIVOT
(MIN([time])
FOR [status] in ([4],[2],[6],[9])) as pvt