У меня есть одна таблица с несколькими строками с несколькими типами событий.SQL, использующий несколько значений в подзапросе в той же таблице
Каждое событие начала имеет конечное событие. Из-за выбора дизайна начальное событие имеет идентификатор конечного события в столбце, но не наоборот. Аналогичным образом, причина начала не такая, как конечная причина.
Мои колонки:
eventTYPE - the type of event (start, end, terminate etc)
eventID - unique ID
eventDate - date the event will happen
endEvent - ID of end event (if event type <> start - this will be NULL)
reason - Reason for the event
мне нужно вернуть все типСобытия = END Это Сравнительное типСобытия = причина START не является определенной причине на указанный пользователем дату.
Я знаю, что мне нужно использовать следующие три утверждения, но я не уверен, как их объединить.
SELECT eventId
FROM Events
WHERE eventType='END' and eventDate='<USER SPECIFIED>'
SELECT endEvent
FROM Events
WHERE eventType='START' and reason <> 'mgp' and endEvent='<ID FROM ABOVE>'
SELECT *
FROM dbo.Events
WHERE eventType='END' and eventId='<END EVENT FROM ABOVE>'
Любая помощь приветствуется!
.... Почему вы храните конечные события в этой таблице? Я имею в виду, это для таких событий, как концерты и т. Д., Правильно? Почему бы просто не поставить дату окончания (или продолжительность) в ту же строку? В чем разница между событием «end» и событием «terminate»? Почему причины для начала и конца событий различны? –