Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Автор2
Guest |
Есть объект с набором состояний, в любой момент времени объект может перейти из любого в любое состояние, задача банальная - определить находился ли он в состоянии F (неважно сколько времени) в период T. Сам алгоритм видится таким : нужно найти последний переход в F произошедший до конца T и проверить, что следующий за ним переход в НЕ F произошел после начала T. Что сразу приходит в голову : 1. join 2. cross apply 3. top one ... with ties over .... join сразу отпадает т.к. для поиска первого времени мне нужно использовать MAX, а второе время по условию больше первого. Какие еще есть варианты помимо двух оставшихся ? |
14 сен 12, 18:36 [13167073] Ответить | Цитировать Сообщить модератору |
Mnior Member Откуда: Кишинёв Сообщений: 6723 |
Или существования F в диапазоне или последняя запись до начала и есть F. Что опять-таки есть два обращения, но одно ограниченно. Если хранить оба состояния (до и после), то просто существования за период. Тоже два, но оба ограниченных в диапазоне. |
15 сен 12, 04:43 [13168400] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |