Я работаю над местоположением вида приложения. Таким образом, у меня есть набор записей, сбитые, как показано ниже: Реализация sql-логики для трудного требования
Select Ways.*, ErrorFlag
from Ways with(no lock)
inner join Locations with(no lock)
on Locations.WayId = Ways.WayId
В выше наборе я получить все пути, которые имеют место.
Теперь у меня есть требование, чтобы показать флаг с каждым таким образом, что
условия 1) Если какое-либо место на пути не следуя свои правила.
Правило, что каждое место должно иметь время начала < время окончания.
Итак, теперь у меня только есть algo со мной, так как я не так хорош в реализации запросов.
Для набора результатов у меня уже есть, Шаг 1) Я создам функцию, которая получит WayId, которая уже находится в наборе результатов.
Шаг 2) функция выберет все местоположения из таблицы местоположений, где wayid = @WayId.
Шаг 3) Прокрутите каждый идентификатор строки выбранных в шаге 2 выбранных местоположений, и проверьте, будет ли время начала> конечного времени, и если оно будет указывать «да», оно вернет истинное другое мудрый, он продолжит движение вперед и после прохождения каждого row, он вернет false.
Как это реализовать. Не могли бы вы что-нибудь предложить? Или если у вас есть лучший подход. Пожалуйста, поделитесь пример запроса, так что это будет немного легко для меня, чтобы понять ..
Структура таблицы ниже:
Пути
WayId colorcode weight length
1 red 50 500m
2 blue 100 200m
Местоположение
LocationId WayId Starttime Endtime
1 1 12:00AM 11:00AM
2 1 1:00 PM 2:00 PM
3 1 3:00 PM 4:00PM
Выход : Следующий выход необходим, так как Way with WayId = 1 имеет места, чтобы он отображался, но путь с id = 2 не имеет никаких мест, поэтому он не будет отображаться.
2) Способ имеет три места, так что будет рассчитывать и показывать
3) Способ должен показать ErrorFlag = верно, как один из его места имеют начальное время больше, чем время окончания.
WayId colorCode weight length ErrorFlag Locations
1 red 50 500 true 3
Как вы решаете, что 12:00 утра больше 11:00? – dfundako
Что такое SQL-тип столбцов 'Starttime' и' Endtime' в таблице 'Locations'? – 3N1GM4