跪求一交叉表查询语句急....................
表a
客户名称 产品名称 销量 折扣
张三 a 100 100
张三 c 100 100
李四 b 100 150
李四 a 120 110
王五 c 100 120
.. d .. ..
.. .. .. ..
.. .. .. ..
求一查询语句得到如下结果:
客户名称 备注 a b c d ..
张三 销量 100 100
张三 折扣 100 100
李四 销量 120 100
李四 折扣 110 150
王五 销量 100
王五 折扣 120
..
..
------解决方案--------------------declare @t table(客户名称 varchar(10),产品名称 varchar(10),销量 int,折扣 int)
insert into @t select '张三 ', 'a ',100,100
union all select '张三 ', 'c ',100,100
union all select '李四 ', 'b ',100,150
union all select '李四 ', 'a ',120,110
union all select '王五 ', 'c ',100,120
SELECT * FROM
(
SELECT 客户名称,产品名称, 列 , 列值
FROM
(SELECT 客户名称,产品名称, 销量, 折扣
FROM @t) p
UNPIVOT
(列值 FOR 列 IN
(销量, 折扣)
)AS unpvt
) TB
PIVOT
(MAX(列值)
FOR 产品名称 IN ([a],[b]