| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Составить запрос |
| Автор: rpv 1.3.2008, 11:43 |
| Здравствуйте! Помогите пожалуйста составить запрос. Есть таблица, где указано состояние приборов Поля: id - номер прибора status - состояние прибора statusdate - дата, когда изменилось состояние прибора То есть id может повторяться Нужно составить запрос, который возвратит состояние приборов на текущий момент. Мои мысли - сгруппировать приборы по id, посмотреть наибольшую дату изменения состояния прибора и на эту дату посмотреть состояние. Вот только такой запрос не могу придумать. |
| Автор: Magnifico 1.3.2008, 12:49 | ||||
Добавлено через 13 минут и 34 секунды ой наврал блин! этот запрос получает значения каждого счетчика на последнюю(максимальную дату) но не на текущий момент (а если счетчик не работал минуту?) может так (сравнивать с текущим временем)
и гуппировка не нужна если запись добавлятся каждую секунду функция getdate() для sql server или аналогичная для других субд |
| Автор: rpv 1.3.2008, 17:17 |
| To Magnifico: Вас запрос возвращает всего одну строку. Может я мало информации дал... Таблица такого вида id status statusdate 1 1 2007-01-01 00:00:00.000 2 1 2007-01-01 00:00:00.000 2 2 2007-01-02 00:00:00.000 3 1 2007-01-01 00:00:00.000 4 1 2007-01-01 00:00:00.000 Как видно из таблицы, на приборе с id=2 01.01.2007 состояние равно 1, а на следующий день состояние изменилось на 2, то есть на текущий момент состояние равно 2. Мне нужно получить в результате запроса табличку вида: id status 1 1 2 2 3 1 4 1 Добавлено через 2 минуты и 26 секунд To Magnifico: Вас запрос возвращает всего одну строку. Может я мало информации дал... Таблица такого вида id status statusdate 1 1 2007-01-01 00:00:00.000 2 1 2007-01-01 00:00:00.000 2 2 2007-01-02 00:00:00.000 3 1 2007-01-01 00:00:00.000 4 1 2007-01-01 00:00:00.000 Как видно из таблицы, на приборе с id=2 01.01.2007 состояние равно 1, а на следующий день состояние изменилось на 2, то есть на текущий момент состояние равно 2. Мне нужно получить в результате запроса табличку вида: id status 1 1 2 2 3 1 4 1 |
| Автор: Magnifico 1.3.2008, 22:23 | ||
| я думал речь на милисекунды идет ,что я у тебя монитор в реальном времени а ту просто выборка на последнюю существующую дату для каждого id
|
| Автор: rpv 4.3.2008, 11:55 |
| Спасибо! |
| Автор: Deniz 4.3.2008, 12:45 | ||
А что проще нельзя?
|
| Автор: Magnifico 9.3.2008, 16:54 | ||
| да проще но только в написании добавим order by
план выплнения будет практчески одинаковый |
| Автор: Deniz 11.3.2008, 07:32 |
| Magnifico, проще не только в написании, но и в использовании. У тебя использован T-SQL, который есть не везде |