--建立测试环境
Create Table 表(店名 varchar(10),销售金额 varchar(10),销售数量 varchar(10),周 varchar(10))
--插入数据
insert into 表
select 'a1','100000','1000','1' union
select 'a1','90000','900','2' union
select 'a1','80000','800','3' union
select 'a2','10000','100','1' union
select 'a2','9000','90','2' union
select 'a2','8000','80','3'
select * from 表
--测试语句
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 店名'
SELECT @SQL= @SQL+ ',max(CASE WHEN 周 = ''' + 周 + ''' THEN 销售金额 else 0 END) [周' + 周 + '金额]'+
',max(CASE WHEN 周 = ''' + 周 + ''' THEN 销售数量 else 0 END) [周' + 周 + '数量]'
FROM (SELECT DISTINCT 周 FROM 表) A
SET @SQL=@SQL+ ' FROM 表 GROUP BY 店名'
EXEC (@SQL)
--删除测试环境
Drop Table 表
Create Table 表(店名 varchar(10),销售金额 varchar(10),销售数量 varchar(10),周 varchar(10))
--插入数据
insert into 表
select 'a1','100000','1000','1' union
select 'a1','90000','900','2' union
select 'a1','80000','800','3' union
select 'a2','10000','100','1' union
select 'a2','9000','90','2' union
select 'a2','8000','80','3'
select * from 表
--测试语句
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 店名'
SELECT @SQL= @SQL+ ',max(CASE WHEN 周 = ''' + 周 + ''' THEN 销售金额 else 0 END) [周' + 周 + '金额]'+
',max(CASE WHEN 周 = ''' + 周 + ''' THEN 销售数量 else 0 END) [周' + 周 + '数量]'
FROM (SELECT DISTINCT 周 FROM 表) A
SET @SQL=@SQL+ ' FROM 表 GROUP BY 店名'
EXEC (@SQL)
--删除测试环境
Drop Table 表
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货