日期:2014-05-18  浏览次数:20364 次

行列转换问题,在线结帖!!急
我有一张表tableA,结构如下:
类型名称     基本       业绩         提成                      
    电子         500       1000         100
    电脑         400       1200         240
    合计         900       2200         340

怎么得到以下结果:
--------------------------------
类型名称     电子       电脑       合计
    基本         500         400       900  
    业绩         1000       1200     2200
    提成         100         240       340

------解决方案--------------------
Select 类型名称,Sum(电子) As 电子,Sum(电脑) As 电脑,Sum(合计) As 合计
From (
Select
'基本 ' As 类型名称,
Case 类型名称 When '电子 ' Then 基本 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 基本 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 基本 Else 0 End As 合计
From
TableA
Union All
Select
'业绩 ' As 类型名称,
Case 类型名称 When '电子 ' Then 业绩 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 业绩 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 业绩 Else 0 End As 合计
From
TableA
Union All
Select
'提成 ' As 类型名称,
Case 类型名称 When '电子 ' Then 提成 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 提成 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 提成 Else 0 End As 合计
From
TableA
) T Group By 类型名称 Order By 类型名称 Desc
------解决方案--------------------
---创建测试数据
If Object_id( 'TableA ') Is Not Null
Drop Table TableA
Go
Create Table TableA(类型名称 Varchar(10),基本 Int,业绩 Int,提成 Int)
Insert TableA Select '电子 ',500,1000,100
Union All Select '电脑 ',400,1200,240
Union All Select '合计 ',900,2200,340

---查询测试数据
Select * From TableA

---查询结果
Select 类型名称,Sum(电子) As 电子,Sum(电脑) As 电脑,Sum(合计) As 合计
From (
Select
'基本 ' As 类型名称,
Case 类型名称 When '电子 ' Then 基本 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 基本 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 基本 Else 0 End As 合计
From
TableA
Union All
Select
'业绩 ' As 类型名称,
Case 类型名称 When '电子 ' Then 业绩 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 业绩 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 业绩 Else 0 End As 合计
From
TableA
Union All
Select
'提成 ' As 类型名称,
Case 类型名称 When '电子 ' Then 提成 Else 0 End As 电子,
Case 类型名称 When '电脑 ' Then 提成 Else 0 End As 电脑,
Case 类型名称 When '合计 ' Then 提成 Else 0 End As 合计
From
TableA
) T Group By 类型名称 Order By 类型名称 Desc