日期:2014-05-19  浏览次数:20835 次

一个进仓表,一个出仓表,仓库物料存仓量统计问题
进仓表Instorage
type       color         number
a                 red               10
a                 green             15
a                 red                 20
b                 blue               18
b                 green             8
出仓表OutStorage
type       color         number
a                 red               20
a                 green             15
b                 blue               10
c                 red                   8

现在要求统计出相同品种相同颜色的库存量是多少.
要把Instorage中相同品种相同颜色的数量加起来再减去OutStorage中相同品种相同颜色的数量,如果Instorage中有的,OutStorage中没有的,显示的库存量为正数,如果OutStorage表中有,而Instroage中没有,则显示库存量为负数.

------解决方案--------------------
问题太简单了吧?就怕拿不到分

留个位置,写SQL去
------解决方案--------------------
select a.type,a.color ,sum(number) 'number '
from
(
select type,color,number from Instorage
union all
select type,color,-number 'number ' from OutStorage
) a
group by type,color


type color number
---------- ---------- -----------
b blue 8
a green 0
b green 8
a red 10
c red -8

(所影响的行数为 5 行)



------解决方案--------------------
楼上的方法比我好..动作比我快..
------解决方案--------------------
佩服楼上。
------解决方案--------------------
谁能帮我解释一下
我没怎么看懂啊
------解决方案--------------------
select a.type,a.color ,sum(number) 'number '
from
(
select type,color,number from Instorage
union all
select type,color,-number 'number ' from OutStorage
) a
group by type,color
having sum(number) <> 0
------解决方案--------------------
UP