У меня есть TABLE_A
и TABLE_B
, и мне нужно создать TABLE_B_FINAL
.
Правило:
Если в TABLE_A
значение ID_C=1
и значение AB=AFTER
мы будем умножить значение WEIGHT
с соответствующим значением в TABLE_B
(строки и столбца ID_C=1
AFTER
).
Следующая примеры:
Если в TABLE_A
значение ID_C=1
и значение AB=BEFORE
мы будем умножить значение WEIGHT
с соответствующим значением в TABLE_B
(строки и столбца ID_C=1
BEFORE
).
Если в TABLE_A
значение ID_C=2
и значение AB=AFTER
мы будем умножить значение WEIGHT
с соответствующим значением в TABLE_B
(строки и столбца ID_C=2
AFTER
).
Этот алгоритм проверяет все записи в TABLE_A
и умножает их значение WEIGHT
с соответствующим значением в TABLE_B
.
В начале TABLE_B
имеет значение по умолчанию 1
во всех строках и столбцах (AFTER
и BEFORE
). Это значение изменится во время умножения.Таблица анализа в SQL
TABLE_A
ID_N|WEIGHT_N|ID_C |AB | 5 |1.15 | 1 |AFTER | 12 |1.13 | 1 |BEFORE | 60 |1.65 | 3 |AFTER | 90 |1.85 | 2 |AFTER | 80 |1.45 | 3 |AFTER | 140 |1.57 | 2 |BEFORE |
TABLE_B
|ID_C |BEFORE|AFTER| |1 |1 | 1 | |2 |1 | 1 | |3 |1 | 1 |
TABLE_B_FINAL
|ID_C |BEFORE |AFTER | |1 |1*1.13=1.13 | 1*1.15=1.15 | |2 |1,57 | 1,85 | |3 |1 | 1*1.65*1.45=2.39|
Пожалуйста, покажите нам свои сценарии SQL и схему таблиц, которые вы сделали до сих пор. – stjepano
Моя идея состоит в том, чтобы сделать первый цикл, который запускает TABLE_A и ищет ID_C = 1,2,3, .... n и второй цикл, который будет находиться в первом цикле и распознает, будет ли значение ПОСЛЕ или ПЕРЕД. Но я не знаю, как это сделать. – hanznv
Вам не нужно циклически или цикл. Просто верните правильные значения, основываясь на значении table_a.ab. И вам может понадобиться рекурсивный запрос для расчета продукта: http://stackoverflow.com/a/36201120/2235885 – joop