我需要以下帮助。
这是我的桌子:
退出帐号编号键
14587 2 32345678 458.00接受
15672 7 12335678 095.00客户
15672 5 12345678 095.00说明
17672 1 21345678 408.00接受
15672 5 12345678 095.00列表
17672 1 12345678 408.00接受
我想要的输出应该是:
Id帐号编号金额Item1 Item2 Item3
14587 2 32345678 458.00接受的NULL NULL
15672 7 12335678 095.00客户描述列表
17672 1 21345678 408.00接受接受NULL
预先感谢, 克里斯
答案 0 :(得分:0)
尝试一下:
/*
WITH TAB (ID, Out, AccountNumber, Amount, Key) AS
(
VALUES
(14587, 2, 32345678, 458.00, 'Accepted')
, (15672, 7, 12345678, 095.00, 'Customer')
, (15672, 5, 12345678, 095.00, 'Description')
, (17672, 1, 21345678, 408.00, 'Accepted')
, (15672, 5, 12345678, 095.00, 'List')
, (17672, 1, 21345678, 408.00, 'Accepted')
)
*/
SELECT
MAX(ID) ID, MAX(Out) Out, AccountNumber
, MAX(Amount) AS Amount
, MAX(CASE RN WHEN 1 THEN Key END) AS ITEM1
, MAX(CASE RN WHEN 2 THEN Key END) AS ITEM2
, MAX(CASE RN WHEN 3 THEN Key END) AS ITEM3
FROM
(
SELECT
ID, Out, AccountNumber, Amount, Key
, ROWNUMBER() OVER (PARTITION BY AccountNumber ORDER BY Key) RN
FROM TAB
)
GROUP BY AccountNumber;
您可以取消注释注释掉的块并按原样运行该语句。