![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.10.2008
Сообщений: 14
|
![]()
Добрый день!
Помогите, пожалуйста составить запрос, который будет осуществлять следующее (СУБД MS SQL Server): есть таблица примерно такого вида (для упрощения задачи): 1) name - varchar(20) - название контролируемого объекта 2) state - integer - состояние двери объекта (0 - закрыта, 1 - открыта) 3) DT - datetime - время фиксирования состояния двери В эту таблицу системой контроля постоянно прописывается состояние дверей контролируемых объектов. Причем прописывается как изменение состояния, так и через каждый час (или минуту или день) подтверждение текущего состояния. Например в таком виде: name state DT 123 1 01.01.2010 123 1 02.01.2010 123 0 02.01.2010 234 1 02.01.2010 123 1 02.01.2010 234 1 03.01.2010 123 1 03.01.2010 Необходимо написать запрос, который возвращал бы только факты изменений состояний дверей по всем объектам за выбранный период времени. Т.е. нужно фильтровать последовательные подтверждения одного и того же состояния. Очень прошу помочь разобраться. Сам кое что написал, но очень большой и запутанный запрос получился, который еще и чертовски долго работает. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
![]() Код:
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
не проверял, но выглядит красиво и правильно!
evg_m, +1 p.s. только во внутреннем запросе потерялся знак равно (where t1.name = t0.name and ....) |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.10.2008
Сообщений: 14
|
![]()
Проверил, не знаю как в оригинале, но после трансляции до Trans-SQL не работает. В смысле работает, но не фильтрует (или не все фильтрует). Вполне возможно, что я где-то напортачил. Но вроде бы логика совпадает.
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
фильтрация повторяющихся ячеек в DBGrid | Evgenii | БД в Delphi | 1 | 02.08.2009 20:40 |
Фильтрация записей в таблице | TaTT DoGG | БД в Delphi | 49 | 28.03.2009 19:04 |
Удаление повторяющихся записей | gavrylyuk | Microsoft Office Excel | 3 | 28.06.2008 08:10 |
Фильтрация записей с помощью Grid'а. | Repz | БД в Delphi | 1 | 02.05.2008 04:55 |
Поиск повторяющихся значений | Flangini | Microsoft Office Excel | 23 | 22.02.2008 15:57 |