Office中国论坛/Access中国论坛

标题: 求助:如何用Access SQL标注最小值??? [打印本页]

作者: danysy    时间: 2013-10-18 22:59
标题: 求助:如何用Access SQL标注最小值???
1)附档数据Hrdatabase.accdb
2)要求通过以上“标注最值”按钮来操作:相同物料编号,从字段“最新价格”为new的记录中标注出最小值“min”
如物料编号“41802”标注为"new"的价格有三笔:0.15、0.2、0.08,没有“new”的价格不用管;
希望通过ACCESS  SQL语句自动把价格为最小的那笔0.08的对应字段“最低价格”值设为“min”
问题:如何用SQL来达到以上要求,请各位老师帮忙,谢谢

作者: danysy    时间: 2013-10-18 23:01
补充数据库密码为danysy
作者: danysy    时间: 2013-10-18 23:08
还请各位老师指点一下以下SQL语句是什么意思?(在上附档VBE中有此句,是之前别的老师教我的,但我不明白其意思):
SQL = "update 厂商价格 set 最低价格='min' where 物料编号+'#'+价格 in (select 物料编号+'#'+min(价格)  from 厂商价格 group by 物料编号)"
作者: danysy    时间: 2013-10-18 23:09
主要是此处不理解:where 物料编号+'#'+价格 in (select 物料编号+'#'+min(价格) ,其中 +'#'+  是什么意思?
作者: tmtony    时间: 2013-10-19 10:28
在价格前面 加上一个#符号 与物料编码合在一起形成一个字符  然后与 select 取的最小价格对比
即 物料编码#价格  方便对比
作者: access学习交流    时间: 2013-10-19 10:33
UPDATE 厂商价格 SET 最低价格 = "min"
WHERE 价格=(select top 1 价格 from (SELECT *
FROM 厂商价格
WHERE (((厂商价格.[物料编号])="41802") AND ((厂商价格.[最新价格])="new"))
ORDER BY 厂商价格.最新价格));

作者: danysy    时间: 2013-10-19 10:39
tmtony 发表于 2013-10-19 10:28
在价格前面 加上一个#符号 与物料编码合在一起形成一个字符  然后与 select 取的最小价格对比
即 物料编码 ...

tmtony老师,谢谢您的指点
作者: danysy    时间: 2013-10-19 10:41
access学习交流 发表于 2013-10-19 10:33
UPDATE 厂商价格 SET 最低价格 = "min"
WHERE 价格=(select top 1 价格 from (SELECT *
FROM 厂商价格

老师,您的这句代码只是针对物料编号为41802的,那其他的物料编号了,我没有固定物料编号为一个了,可能有上千个以上了
作者: tmtony    时间: 2013-10-19 11:12
更多交流也可 加入我们的QQ群,如access培训群, 在线即时回复的
http://www.office-cn.net/plugin.php?id=zstm_qqgroup:index
作者: danysy    时间: 2013-10-19 11:43
tmtony 发表于 2013-10-19 11:12
更多交流也可 加入我们的QQ群,如access培训群, 在线即时回复的
http://www.office-cn.net/plugin.php?id=z ...

谢谢老师提醒,已加了QQ群




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