Вниз
Скачать: CL | DM;

Запросом выбрать клиентов с днем рожд. в ближайшие 10 дн.   Найти похожие ветки 

← →
alextov   (2003-05-26 10:26) [0]

Есть таблица с клиентами, в ней поле DR(дата рождения, напр "01.10.1955"),тип-date.
Нужно из таблицы клиентов запросом выбрать тех у кого день рождения в ближайшие 10 дней.
Select * from klienti where ???
Че-то я пробуксовываю, подскажите если кто знает , плз...


← →
Md   (2003-05-26 10:34) [1]

СУБД какая?


← →
alextov   (2003-05-26 10:49) [2]

sorry, прозевал - ORACLE 8.0.5


← →
stone ©   (2003-05-26 10:59) [3]

на счет Оракла не скажу, но в MSSQL есть функция DATEPART( datepart, date). Аналогичная функция должна быть и в Оракле.


← →
Reindeer Moss Eater   (2003-05-26 11:16) [4]

Для MSSQL:
Create View VBDays(Tn) as
Select Tn From Peoples
Where
(Month(BDate) = Month(GetDate()) And Day(BDate) - Day(GetDate()) Between 0 and 10)
OR
(
Month(BDate) = Month(GetDate() + 10) And Day(BDate) <= Day(GetDate()+10) And Month(GetDate()+10) <> Month(GetDate())
)

Для Оракла то же самое, но вместо функций Month и Day применить
Extract(MONTH From BDate) и Extract(DAY From BDate)

BDate - поле даты рождения, TN - ключ работника


← →
Sergey13 ©   (2003-05-26 11:28) [5]

Пробовал на 8.1.6

select * from table_clients
where to_number(to_char(dr,"ddd"))
between to_number(to_char(sysdate,"ddd")) and to_number(to_char(sysdate+10,"ddd"))


← →
SergSuper   (2003-05-26 11:30) [6]

для MS SQL
допустим есть таблица Age(years int) с числами от 1 до 100 (можно от 18 до 60)

тогда так


select * from klienti k, Age a
where dateadd(yy, a.years, k.birthday) between GetDate() and GetDate() + 10


т.е. идет перебор каждого клиента на предмет сколько ему лет
алгоритм конечно не эффективный, но если клиентов не много то вполне можно использовать


← →
alextov   (2003-05-26 11:42) [7]

Всем спасибо, запустил



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
14-50431
Lunik
2003-05-29 12:08
2003.06.16
Реестр


14-50527
vitek
2003-06-01 11:41
2003.06.16
Installshield Limit edition


3-50240
DBDev
2003-05-26 17:18
2003.06.16
Как организовать графический эффект на базе значения в TDBGrid?


14-50491
b@nz@i
2003-05-26 16:09
2003.06.16
Наш ответ Их Fallout у (часть 2)


14-50476
DiamondShark
2003-05-30 14:28
2003.06.16
Нужен козырный снимок акулы




   Наверх