Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.005 c
15-1367086920
О-Сознание
2013-04-27 22:22
2013.10.06
Поиск на Хабре.


15-1366378587
Книжколюб
2013-04-19 17:36
2013.10.06
Кто-нибудь пользуется электронными книгами на базе E-Ink ?


3-1293263111
dik59
2010-12-25 10:45
2013.10.06
Создание домена


15-1363095630
О-Сознание
2013-03-12 17:40
2013.10.06
Трабла с директивой


2-1358341960
McLotos
2013-01-16 17:12
2013.10.06
Разбросать результат SQL-запроса по переменным




   Наверх