结果应该是机械师 N0055345 应该有 2 个分配,机械师 N0057581 应该有 0(由于重新分配)。
您的数据中没有说明如何达到此目的。如果这是您想要的数据集,那么您不是在寻找机械师的最新分配,您想要的是他们当前所有分配的总数。如前所述,您的数据中没有任何内容显示重新分配是什么。
如果当前没有这样做的方法,并且您在重新分配时没有删除分配中的记录,我建议在表中添加一个“CurrentlyAssigned”标志,然后您可以对其进行过滤。当他们被重新分配时,切换标志。
表数据(作业)
AutoID EntryDate MechanicID VehicleType CurrentlyAssigned
1022011 8/19/2013 N0055345 CAR 1
1022011 8/18/2013 N0057581 CAR 0
1022014 8/15/2013 N0055345 CAR 1
询问
SELECT MechanicID, COUNT(*) as [NumberOfAssignments]
FROM Assignments
WHERE CurrentlyAssigned = 1
GROUP BY MechanicID
输出
MechanicId NumberOfAssignments
N0055345 2
如果您想包括那些没有分配的人,使用 0/1 标志的好处意味着您可以对其求和。
询问
SELECT MechanicID, SUM(CONVERT(INT,CurrentlyAssigned)) as [NumberOfAssignments]
FROM Assignments
GROUP BY MechanicID
输出
MechanicId NumberOfAssignments
N0055345 2
N0057581 0