是一个收银系统,数据库用ACSESS2000。
目的:要生成一个盘点表(在界面(表格控件)中显示出来),结果如下 商品条码 商品名称 进货数量 进货金额 销售数量 销售成本 自用数量 自用金额 库存数量 库存金额
6912548355511 方便面 50 100.00 20 40.00 5 10.00 25 50.00
...
...
以上字段关系:进货数量-销售数量-自用数量=库存数量 这些信息分布在以下4个表中
1.商品资料表(存放所有商品信息,条码是主键)
字段如下:
商品条码
商品名称
...
单位进价
...2.进货单表(存放历次进货商品,相当于入库单)
字段如下:
商品条码
进货数量
进货单价
进货金额
...3.自用表(存放内部或自已使用掉的商品,相当于出库单)
字段如下:
商品条码
自用数量
进货单价
金额
...
想请教各位高手有没有实效的办法
目的:要生成一个盘点表(在界面(表格控件)中显示出来),结果如下 商品条码 商品名称 进货数量 进货金额 销售数量 销售成本 自用数量 自用金额 库存数量 库存金额
6912548355511 方便面 50 100.00 20 40.00 5 10.00 25 50.00
...
...
以上字段关系:进货数量-销售数量-自用数量=库存数量 这些信息分布在以下4个表中
1.商品资料表(存放所有商品信息,条码是主键)
字段如下:
商品条码
商品名称
...
单位进价
...2.进货单表(存放历次进货商品,相当于入库单)
字段如下:
商品条码
进货数量
进货单价
进货金额
...3.自用表(存放内部或自已使用掉的商品,相当于出库单)
字段如下:
商品条码
自用数量
进货单价
金额
...
想请教各位高手有没有实效的办法
SQL="SELECT * FROM 商品资料表,进货单表,自用表 WHERE 商品资料表.商品条码=进货单表.商品条码 AND 商品资料表.商品条码=自用表.商品条码 AND 商品资料表.商品条码= " & 商品条码
你可以先将其它表各自做一个统计查询,然后以商品资料表left join嵌套其它表的统计查询...
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嵌套要用括号分层...
对了还有个销售表给漏掉了,当然无非是多一个嵌套
有些事一个sql可能达不到,试试stored procedure或function。
如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.商品条码)问题是当进货表或自用表或销售表中没有某样商品记录时,得出的[库存数量]和[库存金额]是空的,请问该如何解决?