获取链接到不同表中相同列的两列的SUM

时间:2009-10-23 15:09:26

标签: sql database

我有一个表“事件”供用户添加具有以下字段的事件:
EventID
事件名称 EventSlot( - > slotID)
EventSlotExtra( - > slotID)(可选)
EventLimit

我还有另一张桌子“老虎机” SlotID(int)
SlotTime(这是上午9点至10点,上午10点至上午11点等)
我需要查询两个表,这样我就可以得到每个SlotTime参与事件的人数。我知道如果选择EventSlot时如何执行此操作,但在选择EventSlotExtra时则不知道如何执行此操作。你能帮我吗?
非常感谢

2 个答案:

答案 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