某表结构
星期 日期 本季 数量 金额 上季 数量 金额
星期1 20010101 冬季 10 秋季 8
星期2 20010102 冬季 10 秋季 8
.....
星期1 20010501 夏季 10 春季 8
星期2 20010502 夏季 10 春季 8
.....我想要的输出结果是
冬季 秋季 夏季 春季
星期 日期 数量 金额 数量 金额 数量 金额 数量 金额
星期1 20010101 10 8
星期2 20010102 10 8
.....
星期1 20010501 10 8
星期2 20010502 10 8
星期 日期 本季 数量 金额 上季 数量 金额
星期1 20010101 冬季 10 秋季 8
星期2 20010102 冬季 10 秋季 8
.....
星期1 20010501 夏季 10 春季 8
星期2 20010502 夏季 10 春季 8
.....我想要的输出结果是
冬季 秋季 夏季 春季
星期 日期 数量 金额 数量 金额 数量 金额 数量 金额
星期1 20010101 10 8
星期2 20010102 10 8
.....
星期1 20010501 10 8
星期2 20010502 10 8
星期 日期 本季 数量1 金额1 上季 数量2 金额2select 星期, 日期,冬季数量 = (case 本季 when '冬季' then 数量1 else 0 end)
,冬季金额 = (case 本季 when '冬季' then 金额1 else 0 end)
,秋季数量 = (case 上季 when '秋季' then 数量2 else 0 end)
,秋季金额 = (case 上季 when '秋季' then 金额2 else 0 end)
,夏季数量 = (case 本季 when '夏季' then 数量1 else 0 end)
,夏季金额 = (case 本季 when '夏季' then 金额1 else 0 end)
,春季数量 = (case 上季 when '春季' then 数量2 else 0 end)
,春季金额 = (case 上季 when '春季' then 金额2 else 0 end)
from table
insert @t
select '星期1','20010101','冬季',10,0,'秋季',8,0 union all
select '星期2','20010102','冬季',10,0,'秋季',8,0 union all
select '星期1','20010501','夏季',10,0,'春季',8,0 union all
select '星期2','20010502','夏季',10,0,'春季',8,0
select 星期, 日期,冬季数量 = (case 本季 when '冬季' then 数量1 else 0 end)
,冬季金额 = (case 本季 when '冬季' then 金额1 else 0 end)
,秋季数量 = (case 上季 when '秋季' then 数量2 else 0 end)
,秋季金额 = (case 上季 when '秋季' then 金额2 else 0 end)
,夏季数量 = (case 本季 when '夏季' then 数量1 else 0 end)
,夏季金额 = (case 本季 when '夏季' then 金额1 else 0 end)
,春季数量 = (case 上季 when '春季' then 数量2 else 0 end)
,春季金额 = (case 上季 when '春季' then 金额2 else 0 end)
from @t
/*星期 日期 冬季数量 冬季金额 秋季数量 秋季金额 夏季数量 夏季金额 春季数量 春季金额
-------- -------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
星期1 20010101 10 0 8 0 0 0 0 0
星期2 20010102 10 0 8 0 0 0 0 0
星期1 20010501 0 0 0 0 10 0 8 0
星期2 20010502 0 0 0 0 10 0 8 0(所影响的行数为 4 行)*/