Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 20:30   #1
Poolinka
Новичок
Джуниор
 
Регистрация: 06.06.2011
Сообщений: 3
По умолчанию как сделать запрос "Список двигателей, восстановленных за последние N месяцев"?

Приветствую всех!!!
Подскажите, пожалуйста , как сделать запрос "Список двигателей, восстановленных за последние N месяцев"?Что нужно писать в условие отбора??))
Poolinka вне форума Ответить с цитированием
Старый 07.06.2011, 05:12   #2
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Код:
... WHERE ДатаЗавершенияРемонтаДвигателя >= (Date()-90)
Понятие "несколько" в аксессе отсутствует.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 07.06.2011, 10:56   #3
Poolinka
Новичок
Джуниор
 
Регистрация: 06.06.2011
Сообщений: 3
По умолчанию

Спасибо))
Но я могу сделать запрос "Список двигателей, восстановленных за последние N лет" в условие отбора нужно написать >(2011-[N])
Т.к. у меня месяцы, то дату нужно поставить, например так #09.11.10# вместо 2011 А так запрос уже не работает((
Poolinka вне форума Ответить с цитированием
Старый 07.06.2011, 12:33   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Список двигателей, восстановленных за последние N лет" в условие отбора нужно написать >(2011-[N])
если следовать логике решения, предложенной otv256, то можно попробовать так (N - число лет):
Код:
... WHERE ДатаЗавершенияРемонтаДвигателя >= (Date()-INT(N*365.25))
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.06.2011, 14:00   #5
Poolinka
Новичок
Джуниор
 
Регистрация: 06.06.2011
Сообщений: 3
По умолчанию

WHERE ДатаЗавершенияРемонтаДвигателя >= (Date()-INT(N*365.25))
Так он не работает((

<=(#15.10.2010#-[N]) если сделать так, то он запрашивает N, а выводит все двигатели, которые были восстановленны раннее 15.10.2010
Poolinka вне форума Ответить с цитированием
Старый 07.06.2011, 14:35   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) что значит "Так он не работает" ?! Ошибку выдаёт? Или нет необходимых данных? Или лишние попадают?

2) При чём здесь дата 15.10.2010 ?!

3) может быть, Вы уже соблаговолите выложить небольшую тестовую СУБД и объясните, что Вам надо?!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2011, 07:51   #7
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от Poolinka Посмотреть сообщение
WHERE ДатаЗавершенияРемонтаДвигателя >= (Date()-INT(N*365.25))
Так он не работает((

<=(#15.10.2010#-[N]) если сделать так, то он запрашивает N, а выводит все двигатели, которые были восстановленны раннее 15.10.2010
Попробуйте так:
Код:
WHERE ДатаЗавершенияРемонтаДвигателя >= DateAdd("yyyy";-N;Date())
где:
ДатаЗавершенияРемонтаДвигателя - Ваше название поля, в котором хранится дата завершения ремонта двигателя
N - количество лет (будет запрашивать при выполнении запроса)
Date() - функция, возвращающая текущую системную дату компьютера (проверьте, правильно ли установлена дата на Вашем компьютере)

Присоединяюсь к Сергею: база не помешала бы.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать запрос в задании 2.4? onacry Microsoft Office Access 2 02.12.2010 22:18
Запрос на последние записи SERG1980 БД в Delphi 5 17.11.2010 17:02
Подскажите как можно сделать запрос **star** Помощь студентам 0 10.11.2009 20:55
как сделать запрос к translate.google... Crystal_Ra Работа с сетью в Delphi 1 19.07.2009 23:53