Нужна помощь по созданию запроса

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Нужна помощь по созданию запроса

Сообщение lord0n » 29.11.2006 (Ср) 15:47

база MySQL
есть дата аттестации у сотрудника
нужно чтобы система показывала только людей у которых аттестация начнется через месяц от сегодня
но проблема в том что аттестация проходит каждый год
то есть учитывать нужно только день и месяц, а не год

я делаю так:
Код: Выделить всё

WHERE (MONTH(DATE_ADD(stajer.dateatt, INTERVAL -1 MONTH)) = MONTH(NOW()))

но тут учитывается только месяц, но не число
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.11.2006 (Ср) 15:52

ну добавь в условие еще сравнение года через AND

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 29.11.2006 (Ср) 15:59

наоборот, год не должен учитываться
то есть мне сравнить дд.мм аттестации с дд.мм сегодня
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.11.2006 (Ср) 16:06

по вашим исходным данным:

(СотрудникМесяц-1) = (Текущий Месяц) AND (СотрудникГод)=(Текущий год)

дальше сами :wink:

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 29.11.2006 (Ср) 16:20

Konst_One писал(а):по вашим исходным данным:

(СотрудникМесяц-1) = (Текущий Месяц) AND (СотрудникГод)=(Текущий год)

дальше сами :wink:

я думаю что в преддверии декабря выражение: "(СотрудникГод)=(Текущий год)"
не логично
ну да не суть, я всетаки решил сделать это не запросом, а через VB
так будет более гибко
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.11.2006 (Ср) 16:28

есть дата аттестации у сотрудника
нужно чтобы система показывала только людей у которых аттестация начнется через месяц от сегодня
но проблема в том что аттестация проходит каждый год


видимо задание у вас другое или я его понять не могу :lol:

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: Нужна помощь по созданию запроса

Сообщение Nicky » 29.11.2006 (Ср) 17:07

lord0n писал(а):...я делаю так:
Код: Выделить всё
WHERE (MONTH(DATE_ADD(stajer.dateatt, INTERVAL -1 MONTH)) = MONTH(NOW()))

но тут учитывается только месяц, но не число

Код: Выделить всё
WHERE (DATE(DATE_ADD(stajer.dateatt, INTERVAL -1 MONTH)) = DATE())

Разве не так?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Re: Нужна помощь по созданию запроса

Сообщение lord0n » 29.11.2006 (Ср) 17:32

Nicky писал(а):
lord0n писал(а):...я делаю так:
Код: Выделить всё
WHERE (MONTH(DATE_ADD(stajer.dateatt, INTERVAL -1 MONTH)) = MONTH(NOW()))

но тут учитывается только месяц, но не число

Код: Выделить всё
WHERE (DATE(DATE_ADD(stajer.dateatt, INTERVAL -1 MONTH)) = DATE())

Разве не так?


тогда будет учитываться год, а мне это не нужно
не напрягайтесь, уже все сделал без сиквел запроса
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList