Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.10.06;
Скачать: CL | DM;

Вниз

Oracle between   Найти похожие ветки 

 
Genry_   (2013-04-26 07:43) [0]

Здравствуйте. Помогите пожалуйста составить запрос.
Есть записи у которых есть дата открытия и дата закрытия.
Пользователь указывает фильтр по периоду <дата с> и <дата по>
Нужно выбрать данные которые были открыты хотя бы один день в заданном периоде. В голову приходит только перебирать в курсоре каждый открытый день записи и сверять не лежит ли он между <дата с> и <дата по>. Подскажите как правильно это лучше сделать ? Спасибо.


 
Ega23 ©   (2013-04-26 07:51) [1]

Select ... from ... where StartDate between ... and ...


 
Genry_   (2013-04-26 08:05) [2]


> Ega23 ©   (26.04.13 07:51) [1]


Фильтр : 2001  по 2007
Дата записи: с 2000 по 2010

Он существовал в заданном периоде, но в таком запросе он не отразится.


 
Ega23 ©   (2013-04-26 08:20) [3]

А, понял что тебе надо.

where startdate <= FilterEndDate and enddate >= FilterStartDate


 
O'ShinW ©   (2013-04-26 08:20) [4]

where
StartDate between ... and ...
or EndDate between ... and ...


 
O'ShinW ©   (2013-04-26 08:27) [5]


> StartDate between ... and ...
> or EndDate between ... and ...

да, ерунда

не попадут
where
StartDate < StartFilter
EndDate > EndFilter


 
Genry_   (2013-04-26 08:29) [6]


> Ega23 ©   (26.04.13 08:20) [3]


Вроде то, что надо. Спасибо.


> O"ShinW ©   (26.04.13 08:20) [4]


Фильтр 2001 по 2007
Дата записи: с 2000 по 2010

Не отразится.


 
O'ShinW ©   (2013-04-26 08:35) [7]

дык я ж сказал - ерунда
правильно в
> where startdate <= FilterEndDate and enddate >= FilterStartDate


 
Ega23 ©   (2013-04-26 08:41) [8]


> Вроде то, что надо. Спасибо.


Незачто.


 
Styx   (2013-04-26 21:51) [9]


> Вроде то, что надо. Спасибо.

Да где же - то, что надо?
Если взять запись с 2005 по 2010 и фильтр с 2001 по 2007 - отразится?


 
O'ShinW ©   (2013-04-26 23:38) [10]

да
2005 <= 2007 и 2010 >= 2001

Проще понять отрицание
не пересекутся, если startdate(SD) > FilterEndDate(FED) или enddate(ED) < FilterStartDate(FSD)
http://www.fotolink.su/v.php?id=9b4991ccd63f2970b1bb5a5ec8c17ccf
соответственно, инвертировав, получим требуемое


 
Styx   (2013-04-26 23:40) [11]

А, точно, sorry



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

Текущий архив: 2013.10.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
4-1267109067
davinchi
2010-02-25 17:44
2013.10.06
Отслеживание обращений к файловой системе?


2-1358404977
aka
2013-01-17 10:42
2013.10.06
MediaPlayer


15-1366925402
Юрий
2013-04-26 01:30
2013.10.06
С днем рождения ! 26 апреля 2013 пятница


15-1366649723
Rouse_
2013-04-22 20:55
2013.10.06
Нужен третейский судья :)


15-1367129093
Neuro System
2013-04-28 10:04
2013.10.06
Помогите решить академические задачи