我有一个表“事件”供用户添加具有以下字段的事件:
EventID
事件名称
EventSlot( - > slotID)
EventSlotExtra( - > slotID)(可选)
EventLimit
我还有另一张桌子“老虎机”
SlotID(int)
SlotTime(这是上午9点至10点,上午10点至上午11点等)
我需要查询两个表,这样我就可以得到每个SlotTime参与事件的人数。我知道如果选择EventSlot时如何执行此操作,但在选择EventSlotExtra时则不知道如何执行此操作。你能帮我吗?
非常感谢
答案 0 :(得分:1)
这太好了,谢谢!
我刚刚修改了代码,因为我正在寻找与会者的总数而不是每个插槽的事件数量,但Charles Bretagna的代码对我帮助很大!再次感谢!
SELECT
s.SlotTime, s.SlotID, ISNULL(SUM(x.EventLimit), 0) + ISNULL(SUM(e.EventLimit), 0)
AS PeopleLimit
FROM
Slots AS s
LEFT OUTER JOIN Events AS e ON e.EventSlot = s.SlotID
LEFT OUTER JOIN Events AS x ON x.EventSlot1 = s.SlotID
GROUP BY s.SlotTime, s.SlotID
ORDER BY s.SlotID;
答案 1 :(得分:0)
试试这个
Select s.SlotTime,
Count(e.EventId) + Count(x.EventId) EventCount
From Slots s
Left Join Events e
On e.EventSlot = s.SlotId
Left Join Events x
On x.EventSlotExtra = x.SlotId
Group By s.SlotTime