ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2898|回复: 8

[求助] 请教一个有关access查询中的排序问题?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-12 23:57 | 显示全部楼层 |阅读模式
老师好:
         附件中有一个“价格库”表和一个“物资清单”表,我想将物资清单中以规格型号去匹配价格库中的最大单价。“价格查询”中将价格库以单价降序排列,我将物资清单表和价格查询做了关联(详见附件),并做了分组汇总,单价取first(应该是要匹配价格库中的最大单价),但是匹配结果并非如此。
        想请问老师我“价格查询”中明明已经是按单价降序排列了,物资清单与之关联后,单价取first应该是最大值了,为什么却不是?



补充内容 (2016-5-17 07:58):
        问题补充:
      大家好,我的案例是这样的:有一个已知的“价格库”,还有一个“物资清单”,根据不同需求可能要以规格型号去匹配“价格库”里的最大单价、最低单价或者最近采购单价。
      我的思路是先建立一个“价格查询”(根据实际需求将“价格库”按单价降序或升序,或按日期降序和升序),然后用“物资清单”与“价格查询”建立关系,并用分类汇总取单价等信息的first值。以匹配各规格型号的最大单价为例,现将价格库按单价排序后可以看到“价格查询”中b的最高单价是14.8、a的最高单价是4.5,在匹配查询中如果取a的第一条单价信息应该对应的就是4.5、取b的第一条信息应该就是14.8,可查询匹配的结果却并非如此。(附件见原题)

  请问为此处first的排序原理是什么?可以沿用上述思路得到想要的结果吗?

   谢谢!

查询.rar

25.36 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2016-5-17 08:37 | 显示全部楼层
First 你可以理解为,第一条符合group by的条件分组的记录值,也就是说,这条记录先输入保存进去的,和你的order by无关

对于你的问题呢,你首先对于first本身的认识就有问题,所以你的问题是不能用first来解决的。
解决时,你要有一定的思路:
1.首先取得物料档中,各个物料最高价是多少,比如这里(价格库)用Max分组查询形成了(A查询)(【规格型号】,【最高价】)
2.接着,我们看【物料】和【最高价】,符合这样条件的,价格记录有多少,并且,最小采购日期是多少,这里(A查询)与(价格库)用Min形成另一个(B查询)(【规格型号】,【最高价】,【最小日期】)
3.如果你的价格记录,同一天的同一个价格的可能存在多条时,并且你相得到的具体的是哪条序号的记录,那么这时候,你还要再用(B查询)和(价格库),用First(这里本来应当用Min的,但是你的【序号】是文本格式的,排序归则是按字符顺序而不是数字顺序),再去求【规格型号】,【最高价】,【最小日期】为条件的最小序号是多少,形成(C查询)(【规格型号】,【最高价】,【最小日期】,【最小序号】)
4.以上(C查询)最后去和物资清单,去连接生成扩展一些信息等等,最终形成(D查询)

思路告诉你,活,还是你自已慢慢做吧









TA的精华主题

TA的得分主题

发表于 2016-5-13 00:46 | 显示全部楼层
考虑把最大价格做成一个子查询再去匹配

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-13 08:49 | 显示全部楼层
gxl19870625 发表于 2016-5-13 00:46
考虑把最大价格做成一个子查询再去匹配

谢谢,能说的再具体一些吗?另外为什么直接用不行?像附件中这种思路比较简洁,我要再匹配最低价或者最近价格也比较方便。

TA的精华主题

TA的得分主题

发表于 2016-5-13 22:13 | 显示全部楼层
271433429 发表于 2016-5-13 08:49
谢谢,能说的再具体一些吗?另外为什么直接用不行?像附件中这种思路比较简洁,我要再匹配最低价或者最近 ...

sql和access还是有区别的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-14 10:03 | 显示全部楼层
gxl19870625 发表于 2016-5-13 22:13
sql和access还是有区别的

我还是不明白,分组汇总的first的工作原理是什么?为什么用一个过渡的查询作为数据源就不行呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-16 19:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哪位大神能解释下附件中first的排序规则?谢谢了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-17 07:44 | 显示全部楼层
本帖最后由 271433429 于 2016-5-17 07:50 编辑

        问题补充:
      大家好,我的案例是这样的:有一个已知的“价格库”,还有一个“物资清单”,根据不同需求可能要以规格型号去匹配“价格库”里的最大单价、最低单价或者最近采购单价。
      我的思路是先建立一个“价格查询”(根据实际需求将“价格库”按单价降序或升序,或按日期降序和升序),然后用“物资清单”与“价格查询”建立关系,并用分类汇总取单价等信息的first值。以匹配各规格型号的最大单价为例,现将价格库按单价排序后可以看到“价格查询”中b的最高单价是14.8、a的最高单价是4.5,在匹配查询中如果取a的第一条单价信息应该对应的就是4.5、取b的第一条信息应该就是14.8,可查询匹配的结果却并非如此。(附件见原题)

  请问为此处first的排序原理是什么?可以沿用上述思路得到想要的结果吗?

   谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-17 23:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Renco 发表于 2016-5-17 08:37
First 你可以理解为,第一条符合group by的条件分组的记录值,也就是说,这条记录先输入保存进去的,和你的 ...

多谢大侠点拨,我已经做好了我要的结果。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 01:59 , Processed in 0.049227 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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