62,267
社区成员
发帖
与我相关
我的任务
分享
--动态维护分店,当分店增加的话,自动统计
--分店表
declare @branch table (branchname varchar(5))
insert into @branch
select '分店1' union all
select '分店2' union all
select '分店3' union all
select '分店4'
--统计数据
declare @sql varchar(8000)
set @sql = 'declare @orderlist table (foodname varchar(4),branchname varchar(5),sunlist int)
insert into @orderlist
select ''鸡蛋'',''分店1'',5 union all
select ''鸭蛋'',''分店1'',10 union all
select ''鸭蛋'',''分店2'',5;
select foodname as 食物'
select @sql = @sql + ' , max(case branchname when ''' + branchname+ ''' then sunlist else 0 end) [' + branchname+ ']'
from (select distinct branchname from @branch) as a
set @sql = @sql + ' from @orderlist group by foodname'
exec(@sql)
/*
食物 分店1 分店2 分店3 分店4
---- ----------- ----------- ----------- -----------
鸡蛋 5 0 0 0
鸭蛋 10 5 0 0
*/
--食物表
declare @food table (foodname varchar(5))
insert into @food
select '鸡蛋' union all
select '鸭蛋'
select * from @food
--分店表
declare @branch table (branchname varchar(5))
insert into @branch
select '分店1' union all
select '分店2' union all
select '分店3'
select * from @branch
--统计数据
declare @orderlist table (foodname varchar(4),branchname varchar(5),sunlist int)
insert into @orderlist
select '鸡蛋','分店1',5 union all
select '鸭蛋','分店1',10 union all
select '鸭蛋','分店2',5
select foodname as 食品,
max(case branchname when '分店1' then sunlist else 0 end) 分店1,
max(case branchname when '分店2' then sunlist else 0 end) 分店2,
max(case branchname when '分店3' then sunlist else 0 end) 分店3
from @orderlist
group by foodname
/*统计结果
食品 分店1 分店2 分店3
---- ----------- ----------- -----------
鸡蛋 5 0 0
鸭蛋 10 5 0
*/
declare @orderlist table (foodname varchar(4),branchname varchar(5),sunlist int)
insert into @orderlist
select '鸡蛋','分店1',5 union all
select '鸭蛋','分店1',10 union all
select '鸭蛋','分店2',5
select foodname as 食品,
max(case branchname when '分店1' then sunlist else 0 end) 分店1,
max(case branchname when '分店2' then sunlist else 0 end) 分店2,
max(case branchname when '分店3' then sunlist else 0 end) 分店3
from @orderlist
group by foodname
/*
食品 分店1 分店2 分店3
---- ----------- ----------- -----------
鸡蛋 5 0 0
鸭蛋 10 5 0
*/