ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 同一个表自连接查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-2 13:21 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

一张表Table,字段为OR_1,INSERTID,Price,Nam,Mail,Nm.其中OR_1有重复,但INSERTID有大小

需要从中筛选出来INSERTID最大的所有数据

语句如下:
  1. Sql="select P1.OR_1,Max(P1.INSERTID) as ID_1,P1.Price,P1.Nam,P1.Mail,P1.Nm from Table P1 group by P1.OR_1

  2. left join

  3. Table P2 on P1.OR_1=P2.OR_1 and P1.ID_1=P2.INSERTID"
复制代码


但总是报错。

求帮助。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-3 08:57 | 显示全部楼层
怎么我的帖子在坛子里看不到呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-9 16:13 | 显示全部楼层
自己解决了
有两种办法:
一、使用IN
  1. Sql = "select OR_1,INSERTID,Price,Nam,Mail,Nm from table where INSERTID IN (select max(INSERTID) from table group by OR_1)
复制代码
这一办法太慢了,开始我以为卡死了,但过了一会就出结果了,原因是数据量太大,IN后面的数据太多。
于是,再找办法
二、使用两表连接
  1. Sql = " select table.* from table , (select OR_1,max(INSERTID) as INSERTID,from table group by OR_1) as table_temp where table.OR_1=table_temp.OR_1 and table.INSERTID=table_temp.INSERTID"
复制代码
在这里 (select OR_1,max(INSERTID) as INSERTID,from table group by OR_1) as table_temp作为一张查询表table_temp,从而将原表table与之连接查询,使用where条件。这样就快多了。


为方便记忆,我把这句拆开了写
  1. dim table_Str
  2. table_Str="(select OR_1,max(INSERTID) as INSERTID,from table group by OR_1) as table_temp"
复制代码
再合成一条sql语句
  1. sql=" select table.* from table ," & table_Str & " where table.OR_1=table_temp.OR_1 and table.INSERTID=table_temp.INSERTID"
复制代码


可是,用自连接方法仍不知道如何写sql语句。

学习使人进步,分享使人快乐

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-30 02:13 , Processed in 0.039500 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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