Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

续-怎样让入库产品按入库时间使用单价表中的单价

Lee  发表于:2010-11-23 21:49:03  
复制

上次发帖问怎样使入库产品对应单价表中单价(详见http://www.accessoft.com/bbs/showtopic.asp?ID=10626&BoardID=4

andymark的查询语句:

SELECT 入库表.产品编号, 入库表.数量, (select top 1 单价 from 单价表  where  产品编号 = 入库表.产品编号 and 单价表.更新日期<=入库表.进仓日期 ORDER by 更新日期 DESC) AS 单价, 入库表.进仓日期
FROM 入库表;

在Sample中使用无问题,但实际使用中弹出错误提示窗口“子查询最多能返回一条记录”,这是怎么回事呢?麻烦朋友们解答。

 

Top
andymark 发表于:2010-11-24 10:44:05
你的示例及语句怎样写的

Lee 发表于:2010-11-24 11:16:25

我的语句如下:

SELECT [入库].产品编号, [入库].[进仓数量], (select top 1 成本单价 from 产品成本  where  产品编号 = 入库.产品编号 and 产品成本.更新日期<=入库.进仓日期 ORDER by 更新日期 DESC) AS 单价, [入库].进仓日期
FROM 入库;
我估计是“成本单价”表中,有些产品编号与更新日期有重复记录,我把表中记录对过两次,删掉了一些重复记录,但还是弹出错误窗口,能否写个语句把“成本单价”表内这些重复记录筛选出来?



南方 发表于:2010-11-24 13:13:29

原来看到发的帖子,本来想传给你,见你没了动静,我也就忘了。

改了基础表项。多做了几个查询是给你选择用的。

为了直观,做了个窗体,我是用“产品编号”来选择,你可把条件设置为更新后单价,道理是一样的。

 

点击下载此附件

Lee 发表于:2010-11-24 13:58:20
先谢谢南方,下载研究研究。

Lee 发表于:2010-11-24 16:37:31

上传Sample供研究(注意打开查询后等一会才会出现错误窗口)

 

点击下载此附件

Lee 发表于:2010-11-25 23:10:25
究竟有无查询能把产品编号和更新日期都一样的筛选出来呢?

Lee 发表于:2010-11-26 11:01:34
andymark期待您的答复。

Lee 发表于:2010-11-30 13:44:04

花数天时间,重新核对单价表和重新导入,查询大致没问题了。

但这查询语句效率很低,入库表中6000多条记录,打开查询要运行近1分钟,所以实际使用中只能应付一时之需,如要按我自己的设想进行查询还要另想办法才行。



总记录:8篇  页次:1/1 9 1 :