从我的数据集中提取两个计数和最早的实例

时间:2011-03-14 18:55:27

标签: sql sql-server sql-server-2000

使用Microsoft Sql 2000

我要求能够通过电子邮件发送月度报告,详细说明一些事件。

(我收到了电子邮件的消息)。

我需要通过电子邮件发送的数据包括人们参加过的某些课程的数量。 (到目前为止这么简单,几个内连接和一个Count()和我在那里。)

除此之外,我们运行的一些内部课程有一个到期日期,提示参加课程。通过使用第一部分的sql代码并将结果集粘贴到临时表中,然后通过遍历该表中的每一行,获取用户ID,查询用户课程的注意事项,我能够粗略地获取我需要的数据,在日期排序,以便最早的位于顶部,并且只获得前1名的记录。

这看起来效率很低,所以有什么方法可以修改我当前的查询,以便我也可以获得用户参加的最早课程的日期吗?

SELECT uName, COUNT(uId), [ not sure what would go in here] FROM UserDetails
  INNER JOIN PassDates
  ON PassDates.fkUser = uId)
GROUP BY uName, uId 

其中,例如

 UserDetails
  uId
  uName

PassDates
   fkUser
   CourseId
   PassDate

希望我已经很好地解释了这一点,有人帮助我。

1 个答案:

答案 0 :(得分:0)

回答问题..

SELECT uName, COUNT(uId), MIN(PassDate)
FROM UserDetails
INNER JOIN PassDates ON PassDates.fkUser = uId
GROUP BY uName, uId

如果您有没有任何课程的用户(还)

,您可以将其转为左连接