SQL为每个年龄组和计数成员选择



我有以下表

[成员]

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

这有帮助吗?

最新更新