查询语句问题

berylw 2004-05-03 12:15:32
表中字段:
商品ID 商品名 商品库位 库存数量
001 冰箱 A001 3
002 电视 A001 3
003 空调 A001 3
001 冰箱 A002 3
001 冰箱 A003 3

要求结果:
商品ID 商品名 库位A001 库位A002 库位A003 合计
001 冰箱 3 3 3 9
002 电视 3 0 0 3
003 空调 3 0 0 3

其中库位是动态的,不一定有几个库位,或许很多,并且要求只让用SQL的一条语句实现,不能写存储过程。
这种要求很过分,我也知道,不过这是老总的要求,各位帮忙了,先谢过。

...全文
73 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
berylw 2004-05-05
  • 打赏
  • 举报
回复
谢谢邹建了,还是没解决,没办法,在前台加了几个数组来实现的,真是麻烦。

虽然没解决,不过您还是费心了,谢谢喽。
berylw 2004-05-03
  • 打赏
  • 举报
回复

未果,还是2条语句实现的,有没有更好的办法了?
zjcxc 元老 2004-05-03
  • 打赏
  • 举报
回复
--测试

--测试数据
create table 表(商品ID char(3),商品名 varchar(10),商品库位 char(4),库存数量 int)
insert 表 select '001','冰箱','A001',3
union all select '002','电视','A001',3
union all select '003','空调','A001',3
union all select '001','冰箱','A002',3
union all select '001','冰箱','A003',3
go

--查询
declare @s varchar(8000)
set @s=''
select @s=@s+',[库位'+商品库位+']=sum(case 商品库位 when '''+商品库位+''' then 库存数量 else 0 end)'
from 表
group by 商品库位
exec('select 商品ID,商品名'+@s+',合计=sum(库存数量)
from 表
group by 商品ID,商品名')
go

--删除测试
drop table 表

/*--测试结果

商品ID 商品名 库位A001 库位A002 库位A003 合计
---- ---------- ----------- ----------- ----------- -----------
001 冰箱 3 3 3 9
002 电视 3 0 0 3
003 空调 3 0 0 3
--*/
zjcxc 元老 2004-05-03
  • 打赏
  • 举报
回复
--上面少了合计

declare @s varchar(8000)
set @s=''
select @s=@s+',[库位'+商品库位+']=sum(case 商品库位 when '''+商品库位+''' then 库存数量 else 0 end)'
from 表
group by 商品库位
exec('select 商品ID,商品名'+@s+',合计=sum(库存数量)
from 表
group by 商品ID,商品名')
internetcsdn 2004-05-03
  • 打赏
  • 举报
回复
楼上:
我不否认
berylw 2004-05-03
  • 打赏
  • 举报
回复

昏,一楼来了一个跟我一样笨的。HOHO
zjcxc 元老 2004-05-03
  • 打赏
  • 举报
回复
--一条语句就真的过分了,因为你的货位是动态的,这样写吧

declare @s varchar(8000)
set @s=''
select @s=@s+',[库位'+商品库位+']=sum(case 商品库位 when '''+商品库位+''' then 库存数量 else 0 end)'
from 表
group by 商品库位
exec('select 商品ID,商品名'+@s+'
from 表
group by 商品ID,商品名')
internetcsdn 2004-05-03
  • 打赏
  • 举报
回复
学习
flymoon 2004-05-03
  • 打赏
  • 举报
回复
再UP一下,明早结贴,请大家再帮帮忙
berylw 2004-05-03
  • 打赏
  • 举报
回复
再UP一下,明早结贴,请大家再帮帮忙。
liang922 2004-05-03
  • 打赏
  • 举报
回复
学习

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧