|
楼主 |
发表于 2023-3-9 16:13
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
自己解决了
有两种办法:
一、使用IN
- Sql = "select OR_1,INSERTID,Price,Nam,Mail,Nm from table where INSERTID IN (select max(INSERTID) from table group by OR_1)
复制代码 这一办法太慢了,开始我以为卡死了,但过了一会就出结果了,原因是数据量太大,IN后面的数据太多。
于是,再找办法
二、使用两表连接
- 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条件。这样就快多了。
为方便记忆,我把这句拆开了写
- dim table_Str
- table_Str="(select OR_1,max(INSERTID) as INSERTID,from table group by OR_1) as table_temp"
复制代码 再合成一条sql语句
- sql=" select table.* from table ," & table_Str & " where table.OR_1=table_temp.OR_1 and table.INSERTID=table_temp.INSERTID"
复制代码
可是,用自连接方法仍不知道如何写sql语句。
学习使人进步,分享使人快乐
|
|