--模拟数据如下直接运行
set nocount on
declare @tt table
(
Months varchar(10),
Shop_Code varchar(500),
sale_Amount varchar(50)
)
insert into @tt select '[1月]','P000349','47950'
insert into @tt select '[2月]','P000055','54520'
insert into @tt select '[2月]','P000007','58020'
insert into @tt select '[2月]','P000349','58119'
insert into @tt select '[3月]','P000055','7045'
insert into @tt select '[3月]','P000039','0'
insert into @tt select '[3月]','P000348','34156'
insert into @tt select '[4月]','P000039','67030'
insert into @tt select '[5月]','P000039','53700'select * from @tt--如何对所取数据表结构进行行列转格式如下:
---ShopCode 1月份 2月份 3月份 4月份 5月份 下面的数据ShopCode是对应的编号,而一二三45分别是对应的月份数据sale_Amount
--谢啦啊
set nocount on
declare @tt table
(
Months varchar(10),
Shop_Code varchar(500),
sale_Amount varchar(50)
)
insert into @tt select '[1月]','P000349','47950'
insert into @tt select '[2月]','P000055','54520'
insert into @tt select '[2月]','P000007','58020'
insert into @tt select '[2月]','P000349','58119'
insert into @tt select '[3月]','P000055','7045'
insert into @tt select '[3月]','P000039','0'
insert into @tt select '[3月]','P000348','34156'
insert into @tt select '[4月]','P000039','67030'
insert into @tt select '[5月]','P000039','53700'select * from @tt--如何对所取数据表结构进行行列转格式如下:
---ShopCode 1月份 2月份 3月份 4月份 5月份 下面的数据ShopCode是对应的编号,而一二三45分别是对应的月份数据sale_Amount
--谢啦啊
select shopcode,sum(case when months = 1 then amount else 0 end) [1],
..... 2
..... 3
.....
from tb
group by shopcode
SUM(CASE WHEN months = '[1月]' THEN sale_Amount ELSE 0 END) AS [1月],
SUM(CASE WHEN months = '[2月]' THEN sale_Amount ELSE 0 END) AS [2月],
SUM(CASE WHEN months = '[3月]' THEN sale_Amount ELSE 0 END) AS [3月],
SUM(CASE WHEN months = '[4月]' THEN sale_Amount ELSE 0 END) AS [4月],
SUM(CASE WHEN months = '[5月]' THEN sale_Amount ELSE 0 END) AS [5月],
SUM(CASE WHEN months = '[6月]' THEN sale_Amount ELSE 0 END) AS [6月],
SUM(CASE WHEN months = '[7月]' THEN sale_Amount ELSE 0 END) AS [7月],
SUM(CASE WHEN months = '[8月]' THEN sale_Amount ELSE 0 END) AS [8月],
SUM(CASE WHEN months = '[9月]' THEN sale_Amount ELSE 0 END) AS [9月],
SUM(CASE WHEN months = '[10月]' THEN sale_Amount ELSE 0 END) AS [10月],
SUM(CASE WHEN months = '[11月]' THEN sale_Amount ELSE 0 END) AS [11月],
SUM(CASE WHEN months = '[12月]' THEN sale_Amount ELSE 0 END) AS [12月]
FROM @tt
GROUP BY Shop_Code/*
Shop_Code 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
P000007 0 58020 0 0 0 0 0 0 0 0 0 0
P000039 0 0 0 67030 53700 0 0 0 0 0 0 0
P000055 0 54520 7045 0 0 0 0 0 0 0 0 0
P000348 0 0 34156 0 0 0 0 0 0 0 0 0
P000349 47950 58119 0 0 0 0 0 0 0 0 0 0*/
如下:
declare @all varchar(5000)
set @all=null
select @all = isnull(@all+',','') + Months from @tt group by Monthsprint ('select * from (select * from #View_Store) a pivot (max(sale_Amount) for Months in (' + @all + ')) b')
怎么写