|select
|Результат.Глубина Глубина,
|Результат.ТекущийДень ТекущийДень,
|Результат.ДеньРождения ДеньРождения,
|Результат.ДатаРождения ДатаРождения,
|Результат.ФизЛицо [Физ $Справочник.ФизическиеЛица]
|from
|(select
|--convert(char(10),Getdate()+"+Число(Смещение)+",6) ТекущаяДата,
|GetDate()+"+Число(Смещение)+" ТекущийДень,
|GetDate()+"+Число(Смещение+Глубина)+" Глубина,
4) as smalldatetime) ДеньРождения,
|f.id ФизЛицо,
|s.id Сотрудник,
|$f.ДатаРождения ДатаРождения
|from $Справочник.Сотрудники s (nolock)
|inner join $Справочник.ФизическиеЛица f (nolock) on f.id=$s.ФизическоеЛицо
|left join _1sjourn j (nolock) on j.iddoc=right($s.ДокументОкончания,9)
|where $s.Фирма=:ВыбФирма
|and ($s.ДокументОкончания=$ПустойИД13 or j.date_time_iddoc>=convert(char(23),GetDate()+"+Смещение+",112))
|and convert(char(10),$f.ДатаРождения,104)<>'01.01.1753') Результат
|where
|Результат.ДеньРождения BETWEEN Результат.ТекущийДень AND Результат.Глубина
|--Результат.ДеньРождения>=GetDate()+"+Число(Смещение)+"
|--and
|--Результат.ДеньРождения<=GetDate()+"+Число(Глубина+Смещение)+"
|ORDER BY Результат.ДеньРождения
т.е.
мне надо получить всех сотрудников у которых день рождения
находиться в промежутке между текущей датой + несколько дней вперед
смещение это для того чтоб дату не менять
глубина это на сколько дней вперед смотреть
так вот в результат не попадают дни рождения которые соответствуют дате начала интервала
если условия на таблицу Результат убрать ,
то видно что колонки
ТекущийДень и ДеньРождения те что мене надо
совпадают
скажем так
входяшие данные:
работаем с сегоднешним днем
смещение 13
глубина 10
есть строчка
в результате выполнения запроса без условий
Глубина 16.10.08
ТекущийДень 06.10.08
ДеньРождения 06.10.08
ДатаРождения 06.10.69
если же условие включить
то эта строка в результат не попадет
что я напортачил?