请问这条SQL如何写?(200分)

  • 主题发起人 主题发起人 nhjoy
  • 开始时间 开始时间
N

nhjoy

Unregistered / Unconfirmed
GUEST, unregistred user!
我的库存管理系统有其中几个表。
ONHAND
GOODSID QTY AMONEY

goodsin
goodsinid indate operator

indetail
goodsinid goodsid qty price

goodsout
goodsoutid outdate operator

outdetail
goodsoutid goodsid qty price

ONHAND是用来记录每种货品的期初库存的,
GOODSIN和INDETAIL是进仓单
GOODSOUT和OUTDETAIL是出仓单。
我现在想写一条语句查出任意时段(当然是开帐之后的)
期初,进,出,现存的数量和金额。
我用的是WINDOWS2000+DELPHI6+ACCESS2000 ADO连接。
 
Select GoodsId,Qty,Amoney,(Select qty From goodsin A,indetail B
Where A.goodsinid=B.goodsinid and B.goodsid=C.goodID
) From ONHAND C
其它几个类似加进去就行了。
 
这样当然不行啦!又没有加减出来的数
每个表的记录是不一定等的,
如在ONHAND表上有的GOODS(货品)在其它表不一定有,
反之亦然。
那我应该如何处理。
用JOIN 好象在ADO里面又用不了。
 

select a.goodsid,sum(a.qty),sum(a.amony),count(b.goodsid),sum(b.price),count(c.goodid),sum(c.price)
from onhand a ,indetail b,outdetail c,goodin d,goodout e
where a.goodid=b.goodid and a.goodid=c.goodid and b.goodinid=d.goodinid and c.goodoutid=e.goodoutid
and d.indate>:rq1 and d.indate<:rq2 and e.outdate>:rq1 and e.outdate<:rq2
现存的数量和金额自己加吧,主要数据库也没怎么看懂
 
你在后台写两个视图,然后在程序里再把两个视图的数据进行统计,
这样就简单了,我就是这么做的
用一个语句好象是写不出来的,因为access好象对join支持的不太好
 
to ugvanxk:
这样只能计算共有的记录,
TO 左右手,
视图怎么写帮忙帮到底讲详细点吧感激感激。
 
其实这个东西搞定了其它的就很容易,
但这个东西好象是搞不定的
是不是要几句SQL才可以呢。
 
多人接受答案了。
 
后退
顶部