Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.003 c
15-1366883286
О-Сознание
2013-04-25 13:48
2013.10.06
Наглядная настройка параметров.


15-1366800820
w666w
2013-04-24 14:53
2013.10.06
Подскажите где найти толкового фрилансера?


2-1358420049
Burn
2013-01-17 14:54
2013.10.06
try..except


2-1357874385
Ghost del vonte
2013-01-11 07:19
2013.10.06
SFX


15-1367086920
О-Сознание
2013-04-27 22:22
2013.10.06
Поиск на Хабре.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский