Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизПЕРЕСЕЧЕНИЕ не СВЯЗАННЫХ ТАБЛИЦ Найти похожие ветки
← →
anat (2005-01-27 13:36) [0]Есть таблица T1 с полями
Dt_Beg Date
dt_End Date
Value Number — определяет некое значение
Есть таблица T2 c полями
D_BEG Date
D_END Date
Необходимо
По каждой записи из T2
вывести
T2.D_Beg,T2.DEnd,T1.VALUE,DtIntersectBeg,DtIntersectEnd
где DtIntersectBeg и DtIntersectBeg пересечения (по датам) T1 и T2
← →
Sergey13 © (2005-01-27 13:42) [1]>где DtIntersectBeg и DtIntersectBeg пересечения (по датам) T1 и T2
Проилюстрируй примером, плиз.
← →
anat (2005-01-27 13:58) [2]T1
Dt_Beg Dt_end Value
05.01.2004 01.10.2004 1
11.02.2004 01.10.2004 2
11.01.2004 15.01.2004 4
T2
D_Beg D_End
01.01.2004 31.01.2004
01.02.2004 29.02.2004
01.03.2004 31.03.2004
01.04.2004 30.04.2004
Нужен результат
T2.D_BEG T2,D_END T1.V DtInterBeg DtInterEnd
01.01.2004 31.01.2004 1 01.01.2004 31.01.2004
01.01.2004 31.01.2004 4 11.01.2004 15.01.2004
01.02.2004 29.02.2004 2 11.02.2004 29.02.2004
01.03.2004 31.03.2004 2 01.03.2004 31.03.2004
01.04.2004 30.04.2004 2 01.04.2004 30.04.2004
← →
Ольга (2005-01-28 08:42) [3]select b.dbeg, b.dend,a.val,
CASE WHEN a.dbeg<b.dbeg THEN b.dbeg ELSE a.dbeg END as D1,
CASE WHEN a.dend<b.dend THEN a.dend ELSE b.dend END as D2
from t2 b left join t1 a on
((a.dbeg between b.dbeg and b.dend) or
(a.dend between b.dbeg and b.dend)) or
(a.dbeg<b.dbeg and a.dend>b.dend)
Возможно в CASE есть небольшой косячок, надо аккуратно проверить (а лень).
Почему у вас в результат не попали записи из Т1 (1 запись) в февраль-март-апрель?
Это вы ошиблись или я неправильно поняла условия?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c