|
Выборка на основе таблицы с шаблонными данными.
|
|||
---|---|---|---|
#18+
Здравствуйте! Имеется 2 таблицы. 1 таблица - это актуальные данные по клиентам, в которых есть некоторые поля. LOAN_CL EFF_DT DT_CH_PRC BASE_CCY_F SIMILAR_FДепозитный договор 19.03.2008 01.01.1900 1 NКредитный договор 22.03.2006 01.01.1900 0 NКредитный договор 17.11.2019 01.01.1900 1 Y 2 таблица - это шаблоны, удовлетворяя которые в первой таблице должно быть проставлено дополнительное поле с флагом, который соответствует флагу 6го поля из 2й таблицы. LOAN_CL EFF_DT DT_CH_PRC BASE_CCY_F SIMILAR_F RVSRКредитный договор >=2019-03-01 1 Y YКредитный договор >=2019-03-01 1 Y YКредитный договор <2019-03-01 <2019-03-01 1 Y NКредитный договор #Y NКредитный договор 0 N на выходе должно получиться такое (измененнная первая таблица 1): LOAN_CL EFF_DT DT_CH_PRC BASE_CCY_F SIMILAR_F RVSR_FДепозитный договор 19.03.2008 01.01.1900 1 NNКредитный договор 22.03.2006 01.01.1900 0 NNКредитный договор 17.11.2019 01.01.1900 1 YY поскольку в 3 строке таблицы 1 все поля удовлетворяют условиям из таблицы 2, которым соответствует поле RVSR = Y. программно сделать эту связку пока не очень получается. написал скрипт, он выводит большее количество строк, чем нужно... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 10:59 |
|
Выборка на основе таблицы с шаблонными данными.
|
|||
---|---|---|---|
#18+
AVRomanenko, для подобных случаев Select t1.* , 1 from t1 where [not] exists (select 1 from t2 where ... ) и это более правильный для написания update. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 09:14 |
|
Выборка на основе таблицы с шаблонными данными.
|
|||
---|---|---|---|
#18+
Добрый день. По-моему удобнее завести для неравенств в датах поля *_from и *_to с включением границ, а не парсить знаки неравенств из полей: 2 таблица - это шаблоны... LOAN_CL EFF_DT_from EFF_DT_to DT_CH_PRC_fromDT_CH_PRC_to BASE_CCY_F SIMILAR_F RVSRКредитный договор 2019-03-01 1 Y YКредитный договор 2019-03-01 1 Y YКредитный договор 2019-02-28 2019-02-28 1 Y NКредитный договор #Y NКредитный договор 0 N Запрос тогда: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Здесь из шаблонов берется первая попавшаяся запись, удовлетворяющая всем условиям (NULL в поле шаблонов, как я понял, считается отсутствием условий), иначе могут быть дубли. Если нужны дубли или известно, что их не может быть, то можно закомментировать строку с "fetch first" (или переписать на "left join TABLE_b ON ..." с теми же условиями). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 12:13 |
|
|
start [/forum/topic.php?fid=43&tid=1600247]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 170ms |
0 / 0 |