Получить сумму двух столбцов, связанных с одним столбцом в другой таблице - PullRequest
0 голосов
/ 23 октября 2009

У меня есть таблица «События», чтобы пользователи могли добавлять события со следующими полями:
EventID
EventName
EventSlot (-> slotID)
EventSlotExtra (-> slotID) (необязательно)
EventLimit

А у меня есть еще одна таблица "Слоты"
SlotID (int)
SlotTime (это 9:00 - 10:00, 10:00 - 11:00 и т. Д.)

Мне нужно запросить обе таблицы, чтобы я мог получить общее количество людей, посещающих события за SlotTime. Я знаю, как это сделать, когда выбран только EventSlot, но не когда EventSlotExtra также выбран. Вы можете помочь?
Большое спасибо

Ответы [ 2 ]

1 голос
/ 23 октября 2009

Это здорово, спасибо !!!

Я только что изменил код, так как искал сумму участников, а не количество событий на слот, но в остальном мне очень помог код Чарльза Бретанья! Еще раз спасибо!

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;
0 голосов
/ 23 октября 2009

попробуйте

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...