大家好。还是分销存行业业务。。
我有3张表,product 产品表, stock 库存表, warehouse 仓库表,
product表定义了产品的名称p_name,经销价sale_price,建议零售价等信息suggest_retail_price;
stock库存表定义了当前库存stock_now,可用库存stock_logic;
warehouse仓库表定义了仓库的名称w_name等信息。
3表的关联是stock库存表是中间表有pid,wid外键。 
product产品表<----stock库存表------>warehouse仓库表我可以查询各仓库的产品库存和该产品价格等信息select pi.product_name, pi.sale_price, pi.suggest_retail_price,
       s.stock_now, s.stock_logic, w.ware_name
  from sc_tm_product_info pi, sc_tt_stock s, sc_tm_warehouse w
  where 1=1
  and pi.sc_tm_product_info_id = s.sc_tm_product_info_id
  and s.sc_tm_warehouse_id = w.sc_tm_warehouse_id
  --and pi.sc_tm_product_info_id = 106317
  order by pi.suggest_retail_price desc
现在有一个需求,就是我要查出某个产品的总库存,这个时候就不用关联warehouse仓库表了。。select count(s.stock_now)
  from sc_tm_product_info pi, sc_tt_stock s
  where 1=1
  and pi.sc_tm_product_info_id = s.sc_tm_product_info_id
  --and pi.sc_tm_product_info_id = 106317
  group by pi.sc_tm_product_info_id可是上述这条sql语句有问题,计算的是有多少个库存记录中有同一产品的数量。
而我要得到的是某产品所有库存中数量的总和。。
ex: a仓库中有id=123的产品2件,b仓库中有id=123产品1件其他仓库没有
这个时候应该得到的id=123产品的总库存是3件,
请问怎么写。。谢谢了

解决方案 »

  1.   

    先把   仓库a b  union all
      

  2.   

    select a.product_id,sum(b.stock_now),sum(stock_logic)
    from product  a ,stock  b 
    where a.product_id=b.product_id 
    group by a.product
      

  3.   

    靠,脑子太笨了,,
    把count()函数换成sum()函数即可
    谢谢楼上的。。
      

  4.   


    select pi.sc_tm_product_info_id, sum(s.stock_now), sum(s.stock_logic) 
      from sc_tm_product_info pi, sc_tt_stock s
      where pi.sc_tm_product_info_id = s.sc_tm_product_info_id
      and pi.sc_tm_product_info_id = 106317
      group by pi.sc_tm_product_info_id
      order by sum(s.stock_now) desc如果现在还要拿到该产品的sale_price, suggest_retail_price呢?怎么写