得到两列的SUM链接到不同的表同一列
问题描述:
我有用户表“事件”来添加事件具有以下字段:
事件ID
事件名称
EventSlot( - > slotID用于)
EventSlotExtra ( - > slotID用于)(可选)
EventLimit
我有另一个表 “插槽”
slotID用于(INT)
SlotTime(这是9 am-10am,10 am-11am等)
我需要查询两个表,这样我才能获得每个参加SlotTime的人员总数。当只选择EventSlot时,我知道如何做到这一点,但当EventSlotExtra也被选中时,我不知道如何做到这一点。你能帮我吗?
非常感谢得到两列的SUM链接到不同的表同一列
答
试试这个
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
答
这是伟大的,谢谢!
我刚刚修改了代码,因为我正在寻找参加者的总数,而不是每个插槽的事件数量,否则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;
也许你可以告诉我们你写的代码到目前为止?人们通常不喜欢只为你写代码...... – 2009-10-23 15:11:36
想必你也有一个参加者的表格,它以某种方式链接到事件。还是以其他方式衍生的“人员总数”? – APC 2009-10-23 15:16:10
是的,我喜欢。但是这个操作没有必要,因为EventLimit给了我假设参加每个活动的参加者人数。 – Anelim 2009-10-23 15:20:12