我有以下表
[成员] :
MemberID DOB Name
------------------------------------
1 01/01/2000 Jon
2 01/01/2005 Bob
3 01/01/2009 Mike
4 01/01/1980 Greg
[ageGroups] :
GroupID GroupTitle MinAge MaxAge
--------------------------------------------------
1 GroupA 0 5
2 GroupB 6 10
3 GroupC 11 18
[事件] :
EventID EventStart
---------------------------
1 01/01/2015
我希望能够执行一个SQL Select命令,该命令在EventStart之日获得组标题和年龄成员数量的数量将在每个年龄段的年龄范围内。
GroupTitle MemberCount
----------------------------------
GroupA 1
GroupB 2
GroupC 1
我一直在尝试使用某些情况下的情况来执行此操作,但被卡住了。
任何帮助将不胜感激!
请查看日期和时间数据类型和功能,尤其是在日期函数上。
您可以尝试以下内容:
SELECT AgeGroups.GroupID, AgeGroups.GroupTitle, COUNT(1) AS MemberCount
FROM AgeGroups
JOIN Events ON EventID = 1
JOIN Members
ON DATEDIFF(year, Members.DOB, Events.EventStart) >= AgeGroups.MinAge
AND DATEDIFF(year, Members.DOB, Events.EventStart) <= AgeGroups.MaxAge
ORDER BY AgeGroups.GroupID
这有帮助吗?