У меня есть таблица с именем PROF, из которой мне нужно взять определенные коды, которые укладываются из x1..x20 и y1..y20 (всего 40 столбцов), которые необходимо проверить в другая таблица таблицы CROSSREF для ссылочных кодов. Проблема здесь в том, что в этой таблице CROSSREF есть одно-много картирование.Отчаянно нужна помощь по логике преобразования
table PROF
---------
mem_id cl_id line_no x1..x20 y1..y20
table CROSSREF
--------------
refx refy
здесь x1 сравнивается с z1 в REFx и эталонное значение в refy поле должно быть вытащены, который имеет от 1 до многих отношениях ..
для например:
refx refy
----------
z1 -> a1
a3
a2
z2 -> a10
a50
так здесь для x1 из таблицы PROF, у меня есть a1, a2, a3 коды. согласно требованию, a1 перемещается в x1, a3-x2 и a2-x3. и нужно заполнить до x20 .. Я думаю, что сначала мне придется тянуть значения до тех пор, пока я не смогу разместить до x1..x20, просмотрев таблицу CROSSREF и оставив остальные коды в таблице PROF, если им не удастся разместить.
Окончательное преобразование
x1 -> a1
x2 -> a3
x3 -> a2
x4 -> a10
x5 -> a20 and so on
Я знаю его слишком сложным, я сказал предложения изменить CrossRef к одному к одному отображения, но требование не изменилось до сих пор.
Сделано использование вложенной таблицы для хранения значений refy при сравнении с таблицей PROF x1, x2, x20, а затем удалены дубликаты среди значений refy, если они используются с использованием MULTISET а затем обновляет значения обратно в x1, x2..x20. – blackpanther