|
Модераторы: skyboy |
|
Garmahis |
|
||||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: 1 Всего: 4 |
Добрый день!
Помогите составить сложный запрос. Есть таблица в которой храниться изменение состояния для объекта. Вот пример таблицы:
ID - ID объекта. DT - дата изменения состояния. IS_ACTUAL соотвествено само состояние. К обьекту состояние применяется в полночь. Поэтому если состояние меняется в течении дня то актуально только то которое последнее. Задача. Надо вывести все ID c их состояниями на некий период дат. Если в этот период объект был хоть раз включен тогда 1 если нет то 0.
Помогите пожалуйста! |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 453 |
Указывайте СУБД. На разных серверах порой нужно использовать принципиально разные методы.
Добавлено через 1 минуту и 22 секунды Кстати, а какой смысл хранить ВСЕ изменения за день, если все, кроме последнего, игнорируются? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Garmahis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: 1 Всего: 4 |
СУБД MS SQL 2008R2
К сожалению это сохранилось исторически. Там еще логируется кто вносил изменения. |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Garmahis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: 1 Всего: 4 |
Не получается не правильно. так предполагается что изменения были обязательно в этот период. А ведь он может быть включен до начала. В приведенном примере такой запрос например для ID IN (2,3,7) пишет 0 а на самом деле 1. Так же в ID = 5 он должен писать 0 так как 5 числа он был включен но через час отключен значит при обновлении состояния в полночь объект не был включен.
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 453 |
Garmahis, надо быть аккуратнее в своих формулировках. Например, с такими уточнениями какая нафиг разница, какое брать @DT_FROM???
Посмотри вот на такое, например:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
jsharp36 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2011 Репутация: нет Всего: 1 |
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
jsharp36 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2011 Репутация: нет Всего: 1 |
Или заменить CASE WHEN SUM(IS_ACTUAL) > 0 THEN 1 ELSE 0 END на MAX(IS_ACTUAL) - как выше написали. Меньше символов
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
Garmahis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 23.12.2004 Репутация: 1 Всего: 4 |
Спасибо большое!!!
|
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |