Office中国论坛/Access中国论坛

标题: 在同一个表中如何揸找重复数据(两字段比较查询) [打印本页]

作者: luhao    时间: 2009-10-1 09:05
标题: 在同一个表中如何揸找重复数据(两字段比较查询)
本帖最后由 luhao 于 2009-10-1 09:07 编辑

表:
ID 订单号       产品       数量
1   W9A001    垫块       15
2   W99527    保护套     20
3   W9A001    垫块       21
4   W98263    垫块        8
5   W99527    保护套     20
查询结果
ID 订单号       产品       数量
1   W9A001    垫块       15
3   W9A001    垫块       21
2   W99527    保护套     20
5   W99527    保护套     20
表达式:符合“订单号”和“产品”相同的数据查询出来
作者: djt    时间: 2009-10-1 09:19
group by就可以了,或者select distinct * from
作者: luhao    时间: 2009-10-1 09:50
2# djt
"ID"是唯一编号的,只查有重复的的数据出来
作者: koutx    时间: 2009-10-1 14:33
本帖最后由 koutx 于 2009-10-1 14:58 编辑

SELECT 表.ID, 表.订单号, 表.产品, 表.数量
FROM
(SELECT 表.订单号, 表.产品, Count(表.数量) AS 行数
FROM 表
GROUP BY 表.订单号, 表.产品
HAVING (((Count(表.数量))>1)))
b2 LEFT JOIN 表 ON (b2.订单号 = 表.订单号) AND (b2.产品 = 表.产品)
ORDER BY 表.ID;
作者: koutx    时间: 2009-10-1 15:07
本帖最后由 koutx 于 2009-10-1 15:10 编辑

如果想同在1楼的结果在排序上也一样可按如下作:
SELECT 表.ID, 表.订单号, 表.产品, 表.数量
FROM
(SELECT 表.订单号, 表.产品, Count(表.数量) AS 行数
FROM 表
GROUP BY 表.订单号, 表.产品
HAVING (((Count(表.数量))>1)))
b2 LEFT JOIN 表 ON (b2.订单号 = 表.订单号) AND (b2.产品 = 表.产品)
ORDER BY 表.订单号;
[attach]39817[/attach]
作者: luhao    时间: 2009-10-2 12:22
谢谢,终于觖决了 5# koutx




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3