出错原因是:品名连接品名,但品名不是唯一的,增加了仓库连接仓库。这样仓库+品名就成了唯一作者: JEN200601 时间: 2007-8-17 11:07
多谢先,但若实盘数表各仓库中品名多于帐面数表仓库中品名时,要找出来,怎么办,详见Excle表中作者: Henry D. Sy 时间: 2007-8-17 11:12
用left join
[ 本帖最后由 dddddd 于 2007-8-17 11:16 编辑 ]作者: Henry D. Sy 时间: 2007-8-17 11:20
SELECT 实盘数.仓库, 实盘数.品名, 实盘数.数量, 帐面数.数量
FROM 实盘数 LEFT JOIN 帐面数 ON (实盘数.仓库=帐面数.仓库) AND (实盘数.品名=帐面数.品名);
下面的查询结果,我在实盘表中增加了个x
仓库 品名 实盘数 帐面数
1号 A 2 2
1号 B 3 3
1号 C 7 8
2号 B 5 5
2号 E 2 5
2号 D 1 3
3号 C 3 4
3号 A 6 5
3号 T 7 2
14号 D 8 10
14号 F 20 18
14号 H 9 6
1号 x 10作者: Henry D. Sy 时间: 2007-8-17 11:39
反之就用右连接
SELECT 实盘数.仓库, 实盘数.品名, 实盘数.数量, 帐面数.数量
FROM 实盘数 RIGHT JOIN 帐面数 ON (实盘数.仓库 = 帐面数.仓库) AND (实盘数.品名 = 帐面数.品名);作者: andymark 时间: 2007-8-17 11:40
SELECT c.仓库, c.品名, c.实盘数, d.帐面数, (c.实盘数-d.帐面数) AS 差额
FROM [SELECT a.仓库, a.品名, Sum(a.数量) AS 实盘数
FROM 实盘数 a
GROUP BY a.仓库, a.品名]. AS c LEFT JOIN [SELECT b.仓库, b.品名, Sum(b.数量) AS 帐面数
FROM 帐面数 b
GROUP BY b.仓库, b.品名]. AS d ON (c.品名 = d.品名) AND (c.仓库 = d.仓库)
WHERE (c.实盘数-d.帐面数)<>0;作者: JEN200601 时间: 2007-8-17 11:47
多谢你的指导。作者: goto2008 时间: 2007-8-17 14:21
学习一下。。作者: JEN200601 时间: 2007-8-17 14:42
你们下午好,又有新问题了。若实盘数表各仓中有一些相同编号产品出现两三次,怎么办,我想在导入数据表时就控制不重复出现又怎么办,详见EXCEL作者: Henry D. Sy 时间: 2007-8-17 15:39
为什么会出现两三次?作者: JEN200601 时间: 2007-8-17 16:29
因为是手工入录的,产品太多仓管都弄不清楚了,有时一个仓一个产品入录两次但数量不同。能帮忙看一下。作者: 一点通 时间: 2007-8-17 16:40