【发布时间】:2015-04-29 17:19:52
【问题描述】:
我需要根据一系列 SQL 子查询生成的数据集创建一个数据集。可以使用以下代码复制子查询的结果:
CREATE TABLE Table1
(`StayID` varchar(3), `IncidentOrder` int, `TxDetails` varchar(73))
;
INSERT INTO Table1
(`StayID`, `IncidentOrder`, `TxDetails`)
VALUES
('IP1', 1, 'Ward: A9999 - 01/01/2015 - 15:23'),
('IP1', 2, 'Consultant: Joe Bloggs Specialty :GERIATRIC MEDICINE - 02/01/2015 - 08:17'),
('IP1', 3, 'Discharge - 06/02/2015 - 16:40'),
('IP2', 1, 'Consultant: Joe Bloggs - 01/01/2015 - 09:02'),
('IP2', 2, 'Consultant: Joe Bloggs Specialty :GERIATRIC MEDICINE - 02/01/2015 - 12:56'),
('IP2', 3, 'Ward: A9999 - 02/01/2015 - 19:39'),
('IP2', 4, 'Consultant: Joe Bloggs - 05/01/2015 - 08:22'),
('IP3', 1, 'Ward: A9999 - 02/01/2015 - 04:58'),
('IP3', 2, 'Consultant: Joe Bloggs Specialty :GASTROENTEROLOGY - 02/01/2015 - 07:27'),
('IP3', 3, 'Consultant: Joe Bloggs - 05/01/2015 - 09:06'),
('IP3', 4, 'Ward: A9999 Consultant: Joe Bloggs - 05/01/2015 - 16:45'),
('IP3', 5, 'Ward: A9999 Consultant: Joe Bloggs - 05/01/2015 - 17:10'),
('IP3', 6, 'Ward: A9999 - 05/01/2015 - 18:14')
;
我需要产生如下结果:
列:StayID、Tx1、Tx2、Tx3、Tx.、Txn
为每个匹配的 StayID 和 Txn 列填充 TransferDetails(基于 IncidentOrder)。
IncidentOrder 不是固定的,对于数据集中的每个 StayID,它可能是 10、30 或 1,因此静态数据透视不是一个选项。
我已经尝试(但失败了)使用 PIVOT 生成所需的输出,希望这里有人可以提供帮助。
提前致谢
【问题讨论】:
-
请添加预期输出
标签: sql-server sql-server-2008-r2 pivot