Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于EXISTS 或 not EXISTS 重复值只显示一个的问题

11123  发表于:2015-08-21 16:53:19  
复制

�������ش˸���


发现用exists 或者 not ixists对于相同结果的情况只显示一次的问题,详细情况如下:

1、核对相符,正确结果要显示三条记录,但用EXISTS只显示了两条记录,因为1月2日有两个相同的数据,都是900,但只显示了一个900

2、账面有银行无,正确结果要显示五条记录,但用EXISTS只显示了四条记录,因为1月1日有两个相同的数据,都是2,但只显示了一个2


请问是EXISTS 或 not EXISTS是我用的不对吗,如果不能达到想要的效果,不知道还有没有其他的查询可以实现上述正确的效果,请高手指点


 

Top
大海 发表于:2015-08-21 18:00:05
是不是你用了 DISTINCT的原因  DISTINCT是去重复的。

11123 发表于:2015-08-21 18:08:21

我没有用DISTINCT呀,能帮忙给修改一下吗?



11123 发表于:2015-08-22 09:59:24
这在企业与银行对账经常出现,因为相同日期,可能发生好几笔金额一样的业务,请大家指点,如果不行,用VBA怎么写代码呀

paciwater 发表于:2015-08-22 21:40:56

查询中用的有DISTINCT,见下图

可以改成以下两句

SELECT 日期, 银行金额
FROM 银行
WHERE EXISTS (Select * FROM 账面 Where 银行.日期 = 账面.日期  AND 账面.账面金额  = 银行.银行金额);

SELECT 日期, 账面金额
FROM 账面
WHERE not  EXISTS (Select * FROM 银行 Where 银行.日期 = 账面.日期  AND 账面.账面金额  = 银行.银行金额);



11123 发表于:2015-08-23 11:26:25

去掉 DISTINCT结果也还是不正确,达不到理想的效果,不是能一一匹配



总记录:5篇  页次:1/1 9 1 :