У меня есть требование выполнить сопоставление нескольких атрибутов по одному.Я стараюсь избегать множественных операторов выбора.Ниже приведен пример.
Table1
Col1|Price|Brand|size|Color
-----------------------
A|10$|BRAND1|10|Red
B|25$|BRAND1|20|Red
C|30$|BRAND1|15|Red
D|40$|BRAND2|25|Blue
E|40$|BRAND2|30|Blue
F|35$|BRAND3|31|Blue
Table2
Col1|Col2|Col3
--------------
B|XYZ|PQR
F|ZZZ|YYY
Table3
Col1|COL2|COL3|LIKECOL1|ClosestPrice|brand|size|Color
------------------------------------------------
B|XYZ|PQR|C|25|BRAND1|15|Red
F|ZZZ|YYY|E|40|NULL|NULL|Blue
В таблице 3 мне нужно вставить данные из таблицы 2, проверив следующие условия.
Найти соответствие для записи в таблице 2, если Марка и Цвет соответствуют и размери цена имеют наиболее близкое соответствие.Если совпадение не найдено, попробуйте просто Цвет (точное совпадение), Размер и ближайшее совпадение цены. Если совпадение не найдено, попробуйте точное совпадение цвета и ближайшее сопоставление цены.
В приведенном выше примере для первой записи'B' в таблице 2, найдено совпадение как C и, таким образом, вставлено в table3 и вторую запись F, запись 'E' совпадает, но только цвет и точное совпадение.
Основываясь на некоторых предыдущих постах, я могу использовать кроссприменить и получить условия точного соответствия, но может ли кто-нибудь помочь мне включить в это логику ближайшего соответствия?