Форум: "Прочее";
Текущий архив: 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