Первая публикация!
Имеется сценарий использования, в котором мы хотим объединить некоторые данные о продажах в таблицу генерального соглашения для определения применимых комиссий на уровне транзакций.
Сложная часть заключается в том, что таблица соглашений имеет РАЗЛИЧНЫЕ возможности, и в худшем случае, по крайней мере, «поймать все».
Мы хотели бы начать с самого «гранулярного» уровня. Таким образом, фиолетовая линия соответствует всем возможным значениям. Однако такое поле, как синяя запись о продажах, не совпадает ни по одному значению с основным, кроме поставщика, поэтому в этом случае это все подхват.
Я думал о том, чтобы объединить все строки в мастере, но тогда мне нужно было бы найти способ присоединить его к продажам - простой concat не смог бы успешно соединить пример с синей строкой. Объединение должно было бы динамически выбирать, какие столбцы сравнивать.
Случайно ли у кого-нибудь есть идеи, как этого добиться? Спасибо!
(Код для таблиц)
* 10 19 * создать TABLE T_TEST_AGREEMENT (VARCHAR ПОСТАВЩИКА (254), VARCHAR ПУНКТА (254), ПРОГРАММА INT, VARCHAR RXDA (254), CTRCT INT, INT FEE INT);
создать TABLE T_TEST_AGREEMENT_SALES (SUPPLIER 25) ПУНКТ VARCHAR (254), ПРОГРАММА INT, RXDA VARCHAR (254), CTRCT INT);
INSERT INTO T_TEST_AGREEMENT значения (123, «A», 60, «Y», 4, 1), (123, «A», 61, «N», 4, 2), (123, «B», 62, null, 5, 3), (123, «C», null, «Y», 6, 4) , (123, ноль, 63, ноль, ноль, 5), (123, ноль, ноль, 'Y', ноль, 6), (123, ноль, ноль, ноль, ноль, 7);
INSERT INTO T_TEST_AGREEMENT_SALES значения (123, «D», 63, ноль, ноль), (123, «F», ноль, ноль, ноль), (123, «A», 61, «N», 4), ( 123, 'C', ноль, 'Y', 6);