asp记录集重复显示的筛选

发布时间:2015年3月24日 作者:未知 查看次数:1543

asp记录集重复显示的筛选


asp记录集重复显示的筛选
参考:
http://zhidao.baidu.com/link?url=QxuhBQ3eiuwyS-qewvthr1rErmQDAqqiN9YMHriL-jNIT895YHMym3BucjFYj5BYpZIra-0G6VGgSwmJgmSAza

现有数据:
A列:1,2,2,2,3,3,4
B列:0,0,0,0,0,0,0

要求显示重复2次以上的数据,不重复的不显示,重复只显示一次,即上面数据显示:2   0和3    0。

用以下语句:
Dim sql
sql = "SELECT A, B FROM 表名 GROUP BY A, B HAVING COUNT(*) >=2"
SET rs = conn.Execute(sql) 'conn 是你的数据库连接
' 将 rs 输出即可

======================================
http://zhidao.baidu.com/link?url=vUtDs7s_aAFbHd1zC8tHaGPSRGrmvihZmVNbxa6TgfDtWS9CvdNeKA_fX9u4RpI6T1oLq_Od1866WE0wLmxuG_

其中是用了HAVING COUNT(*) >=2。
having 和where 都是用来筛选用的,having 是筛选组,而where是筛选记录。
他们有各自的区别

1》当分组筛选的时候 用having

2》其它情况用where
-----------------------------------------------------
用having就一定要和group by连用,
用group by不一有having (它只是一个筛选条件用的)
-------------------------------------------------------
例子
表结构
部门编号  姓名  工资
   1       aa    2000
   2       bb    1200
   1       cc    2100
   2       dd    1800
   1       ee    2100
   3       ff    8000
   2       gg    2200
   3       hh    4500

查询有多个员工的工资不低于2000的部门编号
(就是说如果一个部门的员工大于2000的人数有两个或两个以上就查询出来)

select 部门编号,count(*) from 员工信息表
where 工资>=2000
group by 部门编号
having count(*)>1

where 针对每一条记录筛选
而 having 对同一个部门的分组
count(*)>1 计算多于两个的部门

查询结果为

1  3
3  2



版权所有!www.sieye.cn
E.Mail:sieye@sohu.com QQ:66697110