是一个收银系统,数据库用ACSESS2000。
目的:要生成一个盘点表(在界面(表格控件)中显示出来),结果如下   商品条码      商品名称  进货数量   进货金额  销售数量   销售成本   自用数量   自用金额  库存数量   库存金额
6912548355511    方便面      50         100.00    20         40.00      5          10.00     25         50.00
...
...
   以上字段关系:进货数量-销售数量-自用数量=库存数量   这些信息分布在以下4个表中
1.商品资料表(存放所有商品信息,条码是主键)
    字段如下:
     商品条码
     商品名称
        ...
     单位进价
        ...2.进货单表(存放历次进货商品,相当于入库单)
  字段如下:
    商品条码
    进货数量
    进货单价
    进货金额
      ...3.自用表(存放内部或自已使用掉的商品,相当于出库单)
  字段如下:
    商品条码
    自用数量
    进货单价
    金额
      ...
想请教各位高手有没有实效的办法

解决方案 »

  1.   

    可以啊
    SQL="SELECT * FROM 商品资料表,进货单表,自用表 WHERE 商品资料表.商品条码=进货单表.商品条码 AND  商品资料表.商品条码=自用表.商品条码 AND 商品资料表.商品条码= " & 商品条码
      

  2.   

    可以的,
    你可以先将其它表各自做一个统计查询,然后以商品资料表left join嵌套其它表的统计查询...
     
      

  3.   

    3楼的兄弟能不能大略地写一个SQL,不需精确,主要是了解语法
      

  4.   

    进货表查询:
    select 商品条码 ,sum(进货数量) as po_qty.sum(进货金额) as po_price
    from  进货表
    group by 商品条码
    将这个查询保存在ACCESS的查询页中,名称po自用表查询:
    select 商品条码 ,sum(自用数量) as so_qty.sum(自用金额) as so_price
    from  自用表
    group by 商品条码
    将这个查询保存在ACCESS的查询页中,名称so你要的结果查询:
    select a.商品条码,a.商品名称,po_qty,po_price,so_qty,so_price
    from ((商品资料表 a left join po b on a.商品条码=b.商品条码)
         left join so c on a.商品条码=c.商品条码)以上注意商品条码是主键,ACCESS的left join嵌套要用括号分层...
      

  5.   

    当然上面的示例分表查询可以不保存在ACCESS查询页中,直接写在SQL中,看具体情况了,如果很复杂还是保存为查询比较好
      

  6.   

    谢谢“vbman2003”,这样是可以达到我要的结果了。只是想用一条SQL语句实现,该如何描述?
    对了还有个销售表给漏掉了,当然无非是多一个嵌套
      

  7.   

    世上无难事,只要讲清楚。
    有些事一个sql可能达不到,试试stored procedure或function。
      

  8.   

    6楼不是说了吗,可以用一条SQL语句,只要把5楼中“你要的结果查询”中的po和so分别替换为上面的二个查询语句就行了....
      

  9.   


    如VBMAN2003所教,将PO,SO 换成整条SQL语句成功得到了结果。
    还想麻烦请教,该盘点表中要有一个计算出来的库存数量,该库存数量=进货数量-销售数量-自用数量,于是得在SQL语句中加入:
    库存数量,库存金额
    select a.商品条码,a.商品名称,(po_qty-so_qty...)as 库存数量,po_price-so_price...)as 库存金额,po_qty,po_price,so_qty,so_price
    from ((商品资料表 a left join po b on a.商品条码=b.商品条码)
        left join so c on a.商品条码=c.商品条码)问题是当进货表或自用表或销售表中没有某样商品记录时,得出的[库存数量]和[库存金额]是空的,请问该如何解决?
      

  10.   

    jet_sql可以试试修改如下类似的地方:select ....,(iif(po_qty is null,0,po_qty)-iif(so_qty is null,0,so_qty))as 库存数量...