【发布时间】:2010-11-12 15:28:00
【问题描述】:
我有一个查询,我需要从表中选择所有不同的 ID,还需要只选择 min(date),以便我获得第一个插入的记录,而不是所有日期的 ID。
基本上这就是我要找的 -
表 1 ||表 2-
身份证||身份证日期
1 || 1 2010 年 11 月 11 日
1 || 1 2010 年 10 月 11 日
3 || 3 2010 年 12 月 1 日
4 || 4 01/01/2010
4 || 4 2010 年 2 月 1 日
所以我需要从表 2(table1.ID=table2.ID) 中获取所有记录,其中包含该 ID 的最小日期
这里的结果是
1 2010 年 10 月 11 日
3 2010 年 12 月 1 日
4 2010 年 1 月 1 日
这是我的查询
select u.firstName,u.lastName ,count(*) as theCount
from tbl_appts_change_log c,tbl_appts a, tbl_users u
where c.appt_id=a.ID
and c.user_id=u.userID
and c.appt_id in ( select c.appt_id,min(c.date) from tbl_appts_change_log c, tbl_appts a
where c.appt_id=a.ID
and a.satellite_id='160' GROUP BY c.appt_id)
group by u.firstName,u.lastName
order by count(*) desc,u.firstName,u.lastName
【问题讨论】:
-
您能发布您的架构吗?我不明白你想用这个查询做什么......
-
我无法使用聚合函数和子查询的第二列......它给出了各种错误......
-
@Santosh,尝试用简单的英语重写您真正需要的内容,而不使用诸如 distinct 和 min 之类的 SQL 关键字
-
我已经重写了我正在寻找的内容..希望对您有所帮助...我也找到了解决方案,看看我使用的 Leslie 的解决方案...
-
非常感谢大家的帮助......
标签: sql sql-server