请教一个数据库问题

sword_caihui 2007-04-14 11:08:17

库存编号 企业ID 化学品ID 库存数量
001 1 1 10
002 1 5 50
003 2 1 5
004 1 1 10
005 1 3 30
006 1 3 30
购买编号 购买企业ID 化学品ID 购买数量
001 1 6 60
002 2 1 5
003 1 4 40
004 1 2 20
005 2 2 5
006 1 4 40
销售编号 销售企业ID 化学品ID 销售数量
001 1 1 10
002 1 2 20
003 2 1 5
004 1 2 20
005 1 3 30
006 2 2 5

有上述三张表,现要求:
输入:企业ID = ‘1’
输出样式:
化学品ID 库存总量 购买总量 销售总量
1 20 10 10
2 - 20 40
3 60 - 30
4 - 80 -
5 50 - -
6 - 60 -

请达人们帮忙.....
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sword_caihui 2007-04-14
  • 打赏
  • 举报
回复
非常感谢 达人:paoluo(一天到晚游泳的鱼) 的帮忙,简单的修改,实现的想要的结果

select 化学品ID, sum(库存总量) as 库存总量 ,sum(购买总量) as 购买总量 ,sum(销售总量) as 销售总量
from (
Select
IsNull(IsNull(A.化学品ID, B.化学品ID), C.化学品ID) As 化学品ID,
IsNull(A.库存总量, 0) As 库存总量,
IsNull(B.购买总量, 0) As 购买总量,
IsNull(C.销售总量, 0) As 销售总量
From
(Select 化学品ID, SUM(库存数量) As 库存总量 From A Where 企业ID = '1' Group By 化学品ID) A
full Join
(Select 化学品ID, SUM(购买数量) As 购买总量 From B Where 购买企业ID = '1' Group By 化学品ID) B
On A.化学品ID = B.化学品ID
full Join
(Select 化学品ID, SUM(销售数量) As 销售总量 From C Where 销售企业ID = '1' Group By 化学品ID) C
On B.化学品ID = C.化学品ID
) A
group by A.化学品ID
order by A.化学品ID asc
paoluo 2007-04-14
  • 打赏
  • 举报
回复
--假設3個表名為A B C
--try

Select
IsNull(IsNull(A.化学品ID, B.化学品ID), C.化学品ID) As 化学品ID,
IsNull(A.库存总量, 0) As 库存总量,
IsNull(B.购买总量, 0) As 购买总量,
IsNull(C.销售总量, 0) As 销售总量
From
(Select 化学品ID, SUM(库存数量) As 库存总量 From A Where 企业ID = '1' Group By 化学品ID) A
Full Join
(Select 化学品ID, SUM(购买数量) As 购买总量 From B Where 企业ID = '1' Group By 化学品ID) B
On A.化学品ID = B.化学品ID
Full Join
(Select 化学品ID, SUM(销售数量) As 销售总量 From C Where 企业ID = '1' Group By 化学品ID) C
On B.化学品ID = C.化学品ID

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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