数据库查询结果如下:ID 品名 数量 生产厂家 门店233 I金钱草颗粒 5 重庆 储备柜组1
233 I金钱草颗粒 8 重庆 储备柜组2
233 I金钱草颗粒 4 重庆 储备柜组3
233 I金钱草颗粒 2 重庆 储备柜组4
314 S阿昔洛韦软膏 4 重庆 储备柜组1
314 S阿昔洛韦软膏 3 重庆 储备柜组2
350 S醋酸地塞米松乳膏 1 重庆 储备柜组1
350 S醋酸地塞米松乳膏 2 重庆 储备柜组3
350 S醋酸地塞米松乳膏 3 重庆 储备柜组4
查询结果需打印输出如下格式:ID 品名 储备柜组1数量 储备柜组2数量 储备柜组3数量 储备柜组4数量 合计数量 ...
...
曾重新设计个临时表格式如同输出格式,但重复插入数据有点困难,希望大家给我个解决方案!谢谢!
233 I金钱草颗粒 8 重庆 储备柜组2
233 I金钱草颗粒 4 重庆 储备柜组3
233 I金钱草颗粒 2 重庆 储备柜组4
314 S阿昔洛韦软膏 4 重庆 储备柜组1
314 S阿昔洛韦软膏 3 重庆 储备柜组2
350 S醋酸地塞米松乳膏 1 重庆 储备柜组1
350 S醋酸地塞米松乳膏 2 重庆 储备柜组3
350 S醋酸地塞米松乳膏 3 重庆 储备柜组4
查询结果需打印输出如下格式:ID 品名 储备柜组1数量 储备柜组2数量 储备柜组3数量 储备柜组4数量 合计数量 ...
...
曾重新设计个临时表格式如同输出格式,但重复插入数据有点困难,希望大家给我个解决方案!谢谢!
(ID int,品名 varchar(100), 数量 int, 生产厂家 varchar(100), 门店 varchar(100))
insert into #
select 233, 'I金钱草颗粒', 5 ,'重庆', '储备柜组1' union all
select 233, 'I金钱草颗粒', 8 ,'重庆', '储备柜组2' union all
select 233, 'I金钱草颗粒', 4 ,'重庆', '储备柜组3' union all
select 233, 'I金钱草颗粒', 2 ,'重庆', '储备柜组4' union all
select 314, 'S阿昔洛韦软膏', 4, '重庆', '储备柜组1' union all
select 314, 'S阿昔洛韦软膏', 3, '重庆', '储备柜组2' union all
select 350, 'S醋酸地塞米松乳膏', 1, '重庆', '储备柜组1' union all
select 350, 'S醋酸地塞米松乳膏', 2, '重庆', '储备柜组3' union all
select 350, 'S醋酸地塞米松乳膏', 3, '重庆', '储备柜组4' --静态
select
id,
品名,
max(case when 门店='储备柜组1' then 数量 else 0 end)as '储备柜组1',
max(case when 门店='储备柜组2' then 数量 else 0 end)as '储备柜组2',
max(case when 门店='储备柜组3' then 数量 else 0 end)as '储备柜组3',
max(case when 门店='储备柜组4' then 数量 else 0 end)as '储备柜组4',
sum(数量)as '合计'
from #
group by
id,品名--动态declare @s varchar(1000)
select @s='select id,品名 '
select @s=@s+',max(case when 门店='''+门店+''' then 数量 else 0 end)as '''+门店+''''
from # group by 门店
select @s=@s+' ,sum(数量)as ''合计'' from # group by id,品名'
exec(@s)/*
id 品名 储备柜组1 储备柜组2 储备柜组3 储备柜组4 合计
----------- ---------------------------------------------------------------------------------------------------- ----------- ----------- ----------- ----------- -----------
233 I金钱草颗粒 5 8 4 2 19
314 S阿昔洛韦软膏 4 3 0 0 7
350 S醋酸地塞米松乳膏 1 0 2 3 6(所影响的行数为 3 行)*/