设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1968|回复: 11
打印 上一主题 下一主题

[查询] 子查询可以有where语句吗?

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-6 10:05:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我在用子查询的时候,在子查询中加入where语句,总是报错?
怎么回事呢?
SELECT TabPN.PN, Sum(nz(TabBaseFS.[Q-OK],0)) AS 领料小计, Sum(nz(TabBaseFS.[Q-SC],0)) AS 报废小计
FROM (((TabPN LEFT JOIN TabBaseFG ON TabPN.PN = TabBaseFG.PN) LEFT JOIN TabBaseDGH ON TabPN.PN = TabBaseDGH.PN) LEFT JOIN TabWIPFS ON TabPN.PN = TabWIPFS.PN) LEFT JOIN TabBaseFS ON TabPN.PN = TabBaseFS.PN
WHERE (((TabPN.Dep)="锻压车间") AND ((TabPN.Sta)<>"停产"))
GROUP BY TabPN.PN;

在上面的黑体字中,如果加入where语句 Sum(nz(TabBaseFS.[Q-OK],0)) AS 领料小计 where ([date]=format(now(),"yyyymm")
那么就报错"select字句中包含一个保留字,拼写错误或丢失的参数,或标点符号不正确."
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
12#
 楼主| 发表于 2009-1-6 16:18:49 | 只看该作者
版主,领料和进库那里还要加条件,where(TabBaseFS.pro="领料'),where(TabBaseFg.pro="入库'),我加条件时老是出错.
另外,好像Tabpn这个产品信息表没有用上.这个表里的产品编号是最全的,我想本月没有数据的也列出来,以0表示.

版主能不能做好样子,传上来?

不胜感激!

[ 本帖最后由 olive_fy 于 2009-1-6 16:24 编辑 ]
11#
发表于 2009-1-6 16:02:03 | 只看该作者
SELECT A.PN, A.原库存, C.进库, B.领料, B.领料报废, C.进料报废, [原库存]+Nz([进库],0)-Nz([领料],0)-Nz([领料报废],0)-Nz([进料报废],0) AS 库存
FROM ([SELECT TabWIPFS.PN, Sum(TabWIPFS.[Q-ok]) AS 原库存
FROM TabWIPFS
GROUP BY TabWIPFS.PN]. AS A LEFT JOIN [SELECT TabBaseFS.PN, Sum(TabBaseFS.[Q-OK]) AS 领料, Sum(TabBaseFS.[Q-SC]) AS 领料报废
FROM TabBaseFS
GROUP BY TabBaseFS.PN]. AS B ON A.PN = B.PN) LEFT JOIN [SELECT TabBaseFG.PN, Sum(TabBaseFG.[Q-OK]) AS 进库, Sum(TabBaseFG.[Q-SC]) AS 进料报废
FROM TabBaseFG
GROUP BY TabBaseFG.PN
]. AS C ON A.PN = C.PN;
10#
 楼主| 发表于 2009-1-6 15:58:14 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-6 15:50 发表
期初库存+领料数量-入库数量-报废数量
???


期初库存在期初库存表里面,同一个产品有几个区段,只要把这几段加起来就是这个产品的期初库存

因为查询窗口中要有起至日期和截至日期,因此,最好放一个查询表里,便于日期更新.
9#
发表于 2009-1-6 15:50:13 | 只看该作者
期初库存+领料数量-入库数量-报废数量
???
8#
发表于 2009-1-6 15:47:15 | 只看该作者
想一步到位比较麻烦
7#
 楼主| 发表于 2009-1-6 15:35:53 | 只看该作者
附件是简化的数据库文件.有4个表,
TabWIPFS是期初库存表,PN是产品编号,Q-ok是数量
TabBaseFS是生产数据,PN是产品编号,Q-ok是数量,Q-sc是报废数量,pro是工序
TabBaseFG是成品库数据表,PN是产品编号,Q-ok是数量,pro是工序
TabPN是产品信息表
现在我是做了几个查询做出来的.
我需要用一个查询就动态算出每个产品的当前结存数量,计算公式是:期初库存+领料数量-入库数量-报废数量
可是子查询怎么也弄不好,麻烦各位老大了.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
发表于 2009-1-6 13:53:52 | 只看该作者
把例子传上来看看
5#
 楼主| 发表于 2009-1-6 12:30:55 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-6 10:25 发表
就是不要用access保留字(关键字)作为字段名,比如本例中的date,
请将它更改为myDate试试。


版主,我换了关键字还是不行啊,同样的提示.

Sum(nz(TabBaseFS.[Q-OK],0)) AS 领料小计 where(TabBaseFS.pro="领料")

是不是哪个地方的格式不对啊.
4#
发表于 2009-1-6 10:25:03 | 只看该作者
就是不要用access保留字(关键字)作为字段名,比如本例中的date,
请将它更改为myDate试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-20 23:42 , Processed in 0.091556 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表