ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3155|回复: 4

[求助] 关于DISTINCT使用中碰到的困难

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-5-25 17:58 | 显示全部楼层 |阅读模式
我有一个数据库,其中有帐号、日期、发生额....。
客户的开户日期在一年中任何一日都可能,开户后使用帐号则是很频繁的,我现在要查找开户后第一笔交易的所有信息
因每一个客户肯定有很多交易,所以我考虑用 distinct来抑制帐号,结果应该留下第一次出现的帐号,
然而,我错了,我查到《程序号的SQL金典》有下面这样一段话,也就是说当只有一列时,可抑制,多列时,系统自动按照合并成一列来处理,是否有办法在多列时仅对一列进行抑制?

DISTINCT 是对整个结果集进行数据重复抑制的,而不是针对每一个列,执行下面的SQL 语句:
SELECT DISTINCT FDepartment,FSubCompany FROM T_Employee  执行完毕我们就能在输出结果中看到下面的执行结果:  FDepartment FSubCompany
Development Beijing
Development ShenZhen
HumanResource Beijing
InfoTech Beijing
InfoTech ShenZhen
Sales Beijing
Sales ShenZhen  检索结果中不存在FDepartment 和FSubCompany 列都重复的数据行,但是却存在FDepartment 列重复的数据行,这就验证了“DISTINCT 是对整个结果集进行数据重复抑制的” 这句话。

TA的精华主题

TA的得分主题

发表于 2010-5-25 18:04 | 显示全部楼层
可以考虑按同帐号的最小日期这个条件来查询。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-25 18:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢alzeng 老师:
感觉这可行的,明天上班再去试: ....min (日期).... group by 帐号

TA的精华主题

TA的得分主题

发表于 2010-5-25 18:29 | 显示全部楼层
同一帐户不可能在同一时刻有多笔交易。因此 帐户 和 交易时刻 组成复合主键

SQL语句类似于:
select  所需字段列表 FROM ( select 帐号,min(日期) from T_Employee) as t1, T_Employee as t2
where t1.帐号=t2.帐号 and t1.日期=t2.日期

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-25 21:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢livewire 老师:

我觉得按2楼说的直接筛选就可以了,如果不行,则再考虑用子查询。

我的资料中有帐号、发生日期、金额、借贷、套号等信息,在我的上级单位确实有发生的时刻,但我没有。
一个帐户一天中有多笔交易是很正常的,所以也不可能做复合主键了。

顺便说一下背景:人民银行有规定:新开户必须执行3个工作日后生效的制度。我要自查是否执行到位,所以要所有交易信息中找出所有帐户中开户后的第一笔借方交易的信息,然后根据已知的新开帐户及日期,进行匹配,剔除老帐户,对匹配后的帐户进行日期比较,当然这个日期比较还是有点复杂的,需考虑休息日这个因素。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 15:55 , Processed in 0.018431 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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