Крест применить с ближайшего матча - PullRequest
0 голосов
/ 28 октября 2018

У меня есть требование выполнить сопоставление нескольких атрибутов по одному.Я стараюсь избегать множественных операторов выбора.Ниже приведен пример.

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' совпадает, но только цвет и точное совпадение.

Основываясь на некоторых предыдущих постах, я могу использовать кроссприменить и получить условия точного соответствия, но может ли кто-нибудь помочь мне включить в это логику ближайшего соответствия?

...