日期:2014-05-18  浏览次数:20573 次

请教一个数据库问题

库存编号 企业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 -

请达人们帮忙.....

------解决方案--------------------
--假設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