我在 tbl1 中有数据:
item date amount
a 1 10
a 2 20
a 3 30
a 4 40
b 1 20
b 2 30
b 3 40
b 4 50
c 1 30
c 2 40
c 3 50
c 4 60
但我需要像下面这样
item 1 2 3 4
a 10 20 30 40
b 20 30 40 50
c 30 40 50 60
最佳答案
使用PIVOT
SELECT item, [1], [2], [3], [4]
FROM tbl1 t
PIVOT (SUM(amount) FOR date IN ([1], [2], [3], [4])) p
SELECT item, [10], [20], [30], [40], [50], [60]
FROM tbl1 t
PIVOT (MAX(date) FOR amount IN ([10], [20], [30], [40], [50], [60])) p
输出:
item 1 2 3 4
a 10 20 30 40
b 20 30 40 50
c 30 40 50 60
SQL fiddle :http://sqlfiddle.com/#!3/f097d/12/0
关于sql - 将行查询到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30638274/