设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: myszh
打印 上一主题 下一主题

[Access本身] 表达式 求第二最小数

[复制链接]
11#
发表于 2007-4-9 18:12:00 | 只看该作者
Set ff = CurrentDb.OpenRecordset("SELECT TOP 1 * FROM (SELECT * from 表1 where sl>(select min(sl) from 表1)) WHERE ID<7 ORDER BY sl")
12#
 楼主| 发表于 2007-4-9 18:31:00 | 只看该作者
再修改  通过查询  分别求出  按MZ  A   B 。。各自的第二最小数字


[此贴子已经被作者于2007-4-9 10:32:32编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
13#
发表于 2007-4-9 19:22:00 | 只看该作者
1

SELECT *
FROM [SELECT *,(select count(*) from 表1 where a.mz=mz and a.sl>sl) as dd
FROM 表1 a order by 3,mz]. AS [%$##@_Alias]
WHERE dd=1;
2

SELECT mz, min(sl)
FROM [select a.* from 表1 a inner join (
select mz,min(sl) as msl from 表1 group by mz) b on a.mz=b.mz and a.sl>b.msl]. AS [%$##@_Alias]
GROUP BY mz;
14#
发表于 2007-4-9 19:30:00 | 只看该作者
3

select mz,max(sl) from (
SELECT *
FROM 表1 AS a
WHERE sl in(select top 2 sl from 表1 where a.mz=mz order by sl)) group by mz
15#
 楼主| 发表于 2007-4-9 19:39:00 | 只看该作者
3步完成?  怎么好像3个查询没有任何关系? 还有[%$##@_Alias] 是怎么回事呢?
 
16#
发表于 2007-4-9 19:43:00 | 只看该作者
4

SELECT *
FROM 表1 AS a
WHERE sl in(select top 1 sl from 表1 where a.mz=mz and sl>dmin('sl','表1','mz= "' & a.mz & '"') order by sl)
17#
发表于 2007-4-9 19:44:00 | 只看该作者
以上4种方法均可达到目的。
18#
发表于 2007-4-9 19:58:00 | 只看该作者
5

SELECT *
FROM 表1 AS a1
WHERE sl =(select top 1 sl from (SELECT *
FROM 表1 AS a
WHERE sl in(select top 2 sl from 表1 where a.mz=mz order by sl)
) where a1.mz=mz order by sl desc);
19#
发表于 2007-4-9 20:06:00 | 只看该作者
6

select * from (
SELECT (select count(*) from 表1 where sl<=a.sl and mz=a.mz) AS js, *
FROM 表1 AS a
ORDER BY a.MZ, a.SL) where js=2
通过对JS=进行操作,可取出第N个最小数,

在取之前判断一下,选择即可,也可以用VB

A编程,思路如上述。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 13:33 , Processed in 0.100060 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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