Office中国论坛/Access中国论坛

标题: 一个很困惑的查询问题 [打印本页]

作者: JEN200601    时间: 2007-8-16 14:35
标题: 一个很困惑的查询问题
我公司每月盘点都要用帐面数和实际盘点数对比,只要做一个简单的查询就行,但问题是我公司有多个仓库,每个仓中有一些产品都是一样的。例如:
A仓:a,b,c,
B仓:b,c,d
C仓:a,e.d
.................
盘点后要按不同的仓中的产品进行帐实核对,我只有两个表一个是全部仓库的帐面数,别一个是全部仓库的实际盘点数,两表按产品建立关系做个查询,但查询出每个仓的数都多出记录来,什么办。请版主帮个忙。多谢
作者: andymark    时间: 2007-8-16 15:52
平时出入库没分仓库??
作者: JEN200601    时间: 2007-8-16 16:17
平时我们用软件核算,月底只作一次帐实对比,但软件不能做,我们有14个仓库。
作者: Grant    时间: 2007-8-16 16:36
表中都有什么数据,上传看看?
作者: JEN200601    时间: 2007-8-17 09:56
哦,忘上传数据了,现在我的问题是多个仓库,仓库中又一些相同的产品。如何帐实对比。
作者: Henry D. Sy    时间: 2007-8-17 10:14
原帖由 JEN200601 于 2007-8-17 09:56 发表
哦,忘上传数据了,现在我的问题是多个仓库,仓库中又一些相同的产品。如何帐实对比。


出错原因是:品名连接品名,但品名不是唯一的,增加了仓库连接仓库。这样仓库+品名就成了唯一
作者: 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
原帖由 JEN200601 于 2007-8-17 16:29 发表
因为是手工入录的,产品太多仓管都弄不清楚了,有时一个仓一个产品入录两次但数量不同。能帮忙看一下。


有时实际操作中也会出现二次以上录入的,属正常操作
作者: andymark    时间: 2007-8-17 16:42
我给你的例子已经把同一仓库,同一产品汇总了的
作者: Henry D. Sy    时间: 2007-8-17 16:46
如果是正常录入按 andymark的方法就行了
我还以为是错误录入引起的重复记录。
作者: JEN200601    时间: 2007-8-17 16:55
是重复入录一个产品两次数量,不是错误录入,能否在数据表入录时发现并找出。
作者: Henry D. Sy    时间: 2007-8-17 17:07
可以用dcount找出记录>1的
作者: JEN200601    时间: 2007-8-17 17:07
andymark:
  因为我是新手,你能将我的例子做一遍好吗。多谢
作者: andymark    时间: 2007-8-17 17:08
2次录入也没什么不妥,汇总也可以的
作者: 一点通    时间: 2007-8-17 17:14
有重复录入,可以弹出一个提示,让操作者根据情况作录入或放弃处理就行了
作者: JEN200601    时间: 2007-8-17 17:18
是不是先建个汇总查旬,还是查旬时就汇总好了。
作者: andymark    时间: 2007-8-17 18:15
上面的例子查询时才汇总,不用考虑输入是否重复,数据真实正确就OK啦




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3