【发布时间】:2014-07-16 12:59:00
【问题描述】:
有时最难的是知道如何提出正确的问题,但我会尝试一下。
我试图找出一个 SQL 语句(我在 Azure SQL 中),它将检索多行、组合一些列并从其他列创建新的别名列,所有这些都是从更大的 select 语句返回的每一行。
清如泥?让我试着画出来。
Employees
------------
employeeID | managerID | fname
1 5 Bill
2 5 John
3 6 Mary
ClassRegistration
-----------------
employeeID | classID
1 25
2 25
1 27
1 28
2 30
1 45
1 55
2 35
Classes
----------
classID | classStartDate
25 7/1/2014
27 7/14/2014
28 7/28/2014
30 7/11/2014
35 8/1/2014
45 8/1/2014
我需要返回的是这样的表格:
Employee fname | Last Class | Upcoming Class
Bill 27 28
John 30 35
所以我需要类似的东西:选择 * 员工 WHERE managerID = 5。
然后使用具有指定 managerID 的所有员工的结果集,为返回的每个员工返回一行中的最后一个类和下一个类。
此外,员工可能有也可能没有最后一堂课和/或即将上课。
我已经看到了许多不同的方法来使用临时表或与 GROUP BY 组合等来遍历行。但我似乎无法理解我需要什么组合。
【问题讨论】: