现有各个仓库货品库存表fkc.db,  货品表sp.db
 货品库存表fkc.db
   仓库名称    货品名称    库存量
   仓库1       3kw         10
   仓库2       3kw         20
   仓库2       10kw        30
当我要查询仓库1的货品库存量时很好办,但我要查询仓库1中进仓的货品库存量,又要显示没有进仓的货品,具体怎么办?是不是要重建一表。表结构怎么设计?
谢谢各位!

解决方案 »

  1.   

    谢谢各位!
    to hongqi162(失踪的月亮) 
    货品申购表,表结构什么样?
      

  2.   

    你在货品表中用类式 not in (货品库存表 的货品)来查就可得到没进仓的。
      

  3.   

    to: zwhhoo(我爱真理) ( ) 信誉:100 
    我想很难的,具体代码怎么写?
      

  4.   

    不用重建表结构。
    fkc表是这样的对不。
    仓库名称    货品名称    库存量sp表是这样的
    货品名称  .....其它select B.货品名称,isnull(A.库存量,0) as 库存量
    from fkc A Full join sp B on A.货品名称=B.货品名称
      

  5.   

    上面改为,加一个a.仓库名称,where
    select A.仓库名称, B.货品名称,isnull(A.库存量,0) as 库存量
    from fkc A Full join sp B on A.货品名称=B.货品名称
    Where A.仓库名称='你的仓库'zwhhoo(我爱真理) 说的 not in (货品库存表 的货品)来查就可得到没进仓的。也可以得到的。 无非加了个union
    方法很多,你多看看SQL语法。
      

  6.   

    谢谢各位!
    to: My_first(海浪) 能不能看看我的报表的贴子正线等
      

  7.   


    to: cgh1970(阿刀) 
    paradox7支持吗?to My_first(海浪) ( ) 信
    能发一份吗?ebgrid控件
    my email [email protected]
    我正在做仿速达到2000进销售存急用,有没有象速达到2000的dbgrid控件
      

  8.   

    to My_first(海浪) ( ) 信能不能再看看我的报表的贴子正线等,多谢了!
      

  9.   

    刚才我说过我在仿速达sd2000做进销售存。
    我的意思是在进货时,先选择仓库,打开查询窗口进行选择,当然货品是货品的库存信息,也可以显示没有的进仓的货品进行选择。
    我现在有各个仓库的货品库存表fkc.db,其中不含有没有进仓的信息。现在我有查询窗口选择货品代码,其中窗口中有查找货品的功能。问题就出在这,我查询时是从fkc.db 表查询各个仓库的货品库存情况,并选择货品,当有想显示没有的进仓的货品进行选择就困难了。
    我的意愿是不是有不好懂,你可以看一下速达sd2000进销售存。我是向它学的。你的代码
    {上面改为,加一个a.仓库名称,where
    select A.仓库名称, B.货品名称,isnull(A.库存量,0) as 库存量
    from fkc A Full join sp B on A.货品名称=B.货品名称
    Where A.仓库名称='你的仓库'}
    我想查询货品,从库存表fkc.db中很好办。以上按你的意思,是不是要先把没有的进仓的货品查询结果存入表中,以后再进行下面的查询。因为有多个分仓库,每次把没有的进仓的查询结果写入表中是不是很麻烦,paradox7不支持临时表多麻烦!有没有更好的办法呢?我的代码
    var
    asql:string;
    begin
           if edit1.text<>'' then
           aSQL:='and bm like "' +edit1.text+'%'+'"';
           combox1.text:='';
      
      if edit2.text<>'' then asql:=asql+'and pmgk like "'+edit2.Text+'%'+'"';
        combox1.text:='';   if combox1.text='全部' then
       begin
       asql:='';
       end
       else
       if combox1.text<>'' then
         begin
        asql:=asql+'and(hpname="'+combox1.Text+'") ';
        end;
         asql:=asql+'and ck="'+dmsl.sck+'"';       with query1 do
            begin
            close;
            sql.Text:='select * from fkc.db where pmgk<>""'+asql;
            query1.Open;
            end;