有2个表:
产品资料表goods (gods_code),
库存表storemain (gods_code,stor_name,gods_amou) 
gods_code,产品编码 ,gods_amou 库存数量
由于是多仓库,所以用stor_name存放仓库编码,
有可能产品资料表中有,而库存表中没有
现在要用一条SQL语句查找所有产品资料表中的产品编码
如果在库存中对应仓库编码有这个产品则显示其对应的库存数量,
否则不显示数量或显示为0
我用以下这条语句
    with frmdatamod.GoodsfindQ do
      begin 
         close;
         SQL.Clear;
         SQL.Add('select * ');
         SQL.Add(' from goods a left join storemain b ');
         SQL.Add(' on a.gods_code=b.gods_code ');
         SQL.Add(' where b.stor_name='+#39+upublic.stor_name+#39);
         Open;
      end;
现在只能实现库存中有相应仓库编码的产品,而产品资料中,
库存没有的产品根本查不出来,我知道上面语句肯定实现不了,可又不知从何下手
请指教

解决方案 »

  1.   

    select gods_code,gods_name,case gods_name when '' then '0' else gods_amou end as gods_amou from goods a left join store…………
      

  2.   

    select a.gods_code, b.stor_name, nvl(b.gods_amou,0) from goods a, storemain b where a.gods_code=b.gods_code(+)
      

  3.   

    经测试,以上2种都不行
    方法一case gods_name when '' then '0' else gods_amou end 语法错误
    方法二不是俺的意图
    请高手指点
      

  4.   

    select * from goods a left join stordmain b on a.goods_code=b.goods_code
                                  ---------这句不是已经实现你所要求的了吗??