Таблица testTable
имеет 4 столбца
sessionid int
started datetime
ended datetime
SessionIsRunning bool
-будет истинным, если последняя сессия еще не закончилась.Максимально только одна запись может быть истинной в любое время, поскольку может быть запущен максимум один сеанс.Если ни один сеанс не запущен, то все записи имеют это значение как ложное.
Учитывая две даты, скажем fromDate
и toDate
, как мне получить первый сеанс, который начался в или после fromDate
ипоследний сеанс, который закончился toDate
или раньше.Сложное условие: если сеанс находится в процессе и он start date >= fromDate
, нам это нужно.Я предполагаю, что было бы невозможно получить как минимальный, так и максимальный идентификаторы сеанса в одном выражении sql и сохранить код читабельным и простым в обслуживании.Два отдельных оператора SQL в порядке.один, чтобы получить мин и один, чтобы получить макс.Затем я могу запросить строки, используя от мин до макс.
Последнее утверждение объясняет это по-другому.Получить все сеансы, которые начались или были запущены и закончились или работали между / с датами спасибо