我根据你的描述模拟了一个简单的数据库
CP.DB产品定义
-------------
CPBH 产品编号
CPNAME 产品名称
RK.DB入库主表
------------
RKDH 入库单号
KH 客户
CK 入库仓库
RKDATE 入库日期
RKMX.DB入库明细表
----------------
RKDH 入库单号
CPBH 产品编号
NUM 入库数量
CK.DB出库主表
-------------
CKDH 出库单号
CKKH 出库客户
CKCK 出库仓库
CKDATE 出库日期
CKMX.DB出库明细表
-----------------
CKDH 出库单号
CKCP 产品编号
CKSL 出库数量
要达到你设想的查询结果,Paradox一步很难做到
需要把复杂的SQL的语句分解为几个简单的步骤
中间步骤通过视图来完成。
使用Paradox的视图需要使用DataBase DeskTop工具完成
新建SQL文件,加入下列语句。文件存放在数据表相同目录下。
//建立入库主从明细表视图 RKALL.SQL
select a.*,b.*
from RK a left outer join RKMX b
on a.RKDH=b.RKDH
//建立入库的汇总统计视图 RKSUM.SQL
按照入库日期、产品分组统计视图RKALL.SQL
select RKDate,CPBH,SUM(NUM) AS SUMRK
from RKALL.SQL
group by RKDate,CPBH
//建立出库主从明细表视图 CKALL.SQL
select a.*,b.*
from CK a left outer join CKMX b
on a.CKDH=b.CKDH
//建立出库的汇总统计视图 CKSUM.SQL
按照出库日期、产品分组统计视图CKALL.SQL
select CKDATE,CKCP,SUM(CKSL) AS SUMCK
from CKALL.SQL
group by CKDate,CKCP
//搜索入库和出库记录里所有出现的日期 MyDate.SQL
select RKDATE as MyDate from RKSUM.SQL
Union
select CKDATE as MyDate from CKSUM.SQL
where CKDATE not in (select RKDATE from RKSUM.SQL)
//建立产品与日期关联视图 CDDATE.SQL
select distinct b.MyDate,a.CPBH,a.Name
from CP a, MyDate.SQL b
//最后的查询 QueryFinal.SQL
select a.CPBH,a.Name,b.RKDATE,b.SUMRK,
c.CKDATE,c.SUMCK
from CPDATE.SQL a left outer join
RKSUM.SQL b
on a.CPBH=b.CPBH and a.MyDate=b.RKDATE
left outer join
CKSUM.SQL c
on a.CPBH=c.CKCP and a.MyDate=c.CKDATE
where SUMRK<>0 or SUMCK<>0
使用
select * from QueryFinal.SQL
where ....
Order by ...
可以得到你需要的查询格式,至于结余数。我暂时没有实现,解决的办法仍然是建立视图(谁叫这是Paradox呢)。
自己仔细想想,多动动手。
不要做事做到一半就轻言放弃,否则我白帮你了。