Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Логическая задачка / 25 сообщений из 65, страница 1 из 3
06.10.2005, 09:47:06
    #33307915
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
Существует база - в ней поля: дата начала и дата окончания допустим bd.s и bd.po, есть две переменные дата: начало- m.s и окончание - m.po

Необходимо с базы bd выбрать все записи, которые имеют пересечение с переменными m.s и m.po, т.е. даты введенные входят в интервал времени полей bd.s и bd.po

На первый взгляд все просто, но я запутался под конец.

Прошу о помощи
...
Рейтинг: 0 / 0
06.10.2005, 09:50:59
    #33307924
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
where BETWEEN(m.s,bd.s,bd.po) and BETWEEN(m.po,bd.s,bd.po)
...
Рейтинг: 0 / 0
06.10.2005, 09:52:22
    #33307928
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
попонятней скажи что требуется
...
Рейтинг: 0 / 0
06.10.2005, 09:55:56
    #33307937
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
leafwhere BETWEEN(m.s,bd.s,bd.po) and BETWEEN(m.po,bd.s,bd.po)


Это не сработает. Мне необходимо чтобы если есть хотя бы вхождение одного дня в интервал переменных m.s и m.po - то попадало бы в список
...
Рейтинг: 0 / 0
06.10.2005, 09:57:47
    #33307942
Логическая задачка
вместо AND поставь OR
...
Рейтинг: 0 / 0
06.10.2005, 10:01:15
    #33307948
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
Япопонятней скажи что требуется

вводятся от руки две произвольные даты m.s и m.po

нужно из базы bd (где имеются Поля дат bd.s и bd.po) вытащить все записи которые даже хоть 1 днем пересекаются с переменными m.s и m.po
...
Рейтинг: 0 / 0
06.10.2005, 10:01:54
    #33307954
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
or попадание одной из дат в диапазон
and пересечение диапазонов
...
Рейтинг: 0 / 0
06.10.2005, 10:03:12
    #33307961
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
плохо сказал
короче юзай .OR.
...
Рейтинг: 0 / 0
06.10.2005, 10:10:51
    #33307978
Антон_118
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
For PeaceСуществует база - в ней поля: дата начала и дата окончания допустим bd.s и bd.po, есть две переменные дата: начало- m.s и окончание - m.po

Необходимо с базы bd выбрать все записи, которые имеют пересечение с переменными m.s и m.po, т.е. даты введенные входят в интервал времени полей bd.s и bd.po

На первый взгляд все просто, но я запутался под конец.

Прошу о помощи


Может так?

(m.s < bd.po) and (bd.s < m.p)
...
Рейтинг: 0 / 0
06.10.2005, 10:11:32
    #33307981
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
leafплохо сказал
короче юзай .OR.

вот пример при котором не сработает твой совет

допустим
m.s =01.10.05
m.po=21.06.06

а в базе н-ер такой интервал 11.11.05 и 19.02.06

between (01.10.05, 11.11.05 и 19.02.06) дает FALSE
between (21.06.06, 11.11.05 и 19.02.06) тоже дает FALSE

а фактически должно отбираться
...
Рейтинг: 0 / 0
06.10.2005, 10:18:12
    #33307997
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
блин чё те нужно то?
оно и должно давать FALSE
сначала вопрос задай нормально....
короче когда определишься с тем что куда должно попадать приходи
...
Рейтинг: 0 / 0
06.10.2005, 10:23:09
    #33308019
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
leafблин чё те нужно то?
оно и должно давать FALSE
сначала вопрос задай нормально....
короче когда определишься с тем что куда должно попадать приходи

Оно то и должно давать фальш, и оно не попадет в список. А я по моему внятно объяснил что любое пересечение этих дат должно попадать в список.
А в этом случае твоя формула не срабатывает т.е. нужен другой подход

m.s =01.10.05
m.po=21.06.06

а в базе н-ер такой интервал 11.11.05 и 19.02.06

between (01.10.05, 11.11.05 и 19.02.06) дает FALSE
between (21.06.06, 11.11.05 и 19.02.06) тоже дает FALSE
...
Рейтинг: 0 / 0
06.10.2005, 10:27:48
    #33308040
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
Перевожу
Товарисч хоче узнать: перекрываются периоды или нет.

Отвечаю: ну так добавь еще пару BETWEENов через OR.
...
Рейтинг: 0 / 0
06.10.2005, 10:29:21
    #33308045
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
осталось только выяснить что ты называешь пересечение диапазонов ....
ясен пень что либо интервал 1 содержется в интервале 2 либо наоборот либо одна из точек отрезка лежит между двумя точками другого отрезка
всё это ты называешь пересечением
так чё те надо?
...
Рейтинг: 0 / 0
06.10.2005, 10:30:45
    #33308052
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
AleksMedПеревожу
Товарисч хоче узнать: перекрываются периоды или нет.

Отвечаю: ну так добавь еще пару BETWEENов через OR.

Спасибо за поддержку а то у меня уже комлекс создавался - неумения объяснить задачу.

пару between тормозят процесс, я уверен что можно обойтись и одной
...
Рейтинг: 0 / 0
06.10.2005, 10:31:56
    #33308058
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
ну да действительно еще пару условий а так же проверку на пустоту
утро однако...
а воще пример приведи чего тебе надо и не один
...
Рейтинг: 0 / 0
06.10.2005, 10:33:51
    #33308067
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
leafтак чё те надо?

Мне?! Ничего.
Это For Peace надо :)
...
Рейтинг: 0 / 0
06.10.2005, 10:34:06
    #33308068
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
leafосталось только выяснить что ты называешь пересечение диапазонов ....
ясен пень что либо интервал 1 содержется в интервале 2 либо наоборот либо одна из точек отрезка лежит между двумя точками другого отрезка
всё это ты называешь пересечением
так чё те надо?

Че тут непонятного Дорогой чайник! Любое пересечение означает - любая точка соприкосновения, в примере линий пускай даже хоть на одну точку
...
Рейтинг: 0 / 0
06.10.2005, 10:38:24
    #33308093
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
AleksMed leafтак чё те надо?

Мне?! Ничего.
Это For Peace надо :)

Ты понял задачу и уверен что ты справишься не поленись, реши ее как для себя
...
Рейтинг: 0 / 0
06.10.2005, 10:41:40
    #33308119
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
SAVENAH_PER=NAH_PER
SAVEKON_PER=KON_PER

&& ИДЕМ КАКИМ-ТО ПО ЗАПИСЯМ
Код: plaintext
1.
2.
3.
4.
IF BETWEEN(savenah_per,nah_per,kon_per) .or. BETWEEN(savekon_per,nah_per,kon_per) .or. ;
     BETWEEN(nah_per,savenah_per,savekon_per) .or. BETWEEN(kon_per,savenah_per,savekon_per)

endif
...
Рейтинг: 0 / 0
06.10.2005, 10:42:17
    #33308123
Антон_118
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
А мое решение не работает или меня просто игнорируют? :)
...
Рейтинг: 0 / 0
06.10.2005, 10:44:46
    #33308136
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
WORKSNSSAVENAH_PER=NAH_PER
SAVEKON_PER=KON_PER

&& ИДЕМ КАКИМ-ТО ПО ЗАПИСЯМ
Код: plaintext
1.
2.
3.
4.
IF BETWEEN(savenah_per,nah_per,kon_per) .or. BETWEEN(savekon_per,nah_per,kon_per) .or. ;
     BETWEEN(nah_per,savenah_per,savekon_per) .or. BETWEEN(kon_per,savenah_per,savekon_per)

endif


Так громоздко я и сам могу, есть же методы по проще. База огромная - а запрос частый - комп меня просто обматерит
...
Рейтинг: 0 / 0
06.10.2005, 10:46:55
    #33308149
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
Антон_118А мое решение не работает или меня просто игнорируют? :)

оно не работает, но ты молодец. Примерно так я и представляю решение задачи, но чего то не хватает
...
Рейтинг: 0 / 0
06.10.2005, 10:48:03
    #33308158
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
ну, если задача не разовая - то индексы пользовать нужно. и будет вам щасте.
...
Рейтинг: 0 / 0
06.10.2005, 10:50:07
    #33308170
For Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическая задачка
WORKSNSну, если задача не разовая - то индексы пользовать нужно. и будет вам щасте.

Ето условие у меня в select -SQL индексы здесь не причем
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Логическая задачка / 25 сообщений из 65, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]