Запрос редактируется в соответствии с просьбой других участников. Заранее большое спасибо.
Для данного первичного ключа (id_pk) предположим следующие значения:
1. id_pk | code_col| amt_col
2. abc | 10 | 1000
3. abc | 11 | 5
4. abc | 12 | 10
5. abc | 13 | 20
Теперь мне нужно проверить, существует ли для данного первичного ключа с именем «abc» значение с именем «10» в столбце «code_col».
Если это условие удовлетворяется, то необходимо выполнить следующее:
- Для того же первичного ключа abc, для значения code_col, равного 11, вычтите значение amt_col (т.е. 5) из значения amt_col, равного 10 (то есть 1000). Таким образом, конечное значение 0 должно быть обновлено во второй строке таблицы выше.
- Для того же первичного ключа abc, для значения code_col, равного 12, вычтите значение amt_col (т.е. 10) из значения amt_col, равного 10 (то есть, 1000). Таким образом, конечное значение 0 должно быть обновлено в третьей строке таблицы выше.
- Для того же первичного ключа abc, для значения code_col, равного 13, вычтите значение amt_col (т.е. 20) из значения amt_col, равного 10 (то есть, 1000). Таким образом, окончательное значение -865 (оставшиеся) должно быть обновлено в четвертой / последней строке таблицы выше.
Результаты должны быть такими, как показано ниже:
1. id_pk | col1| col2
2. abc | 10 | 0
3. abc | 11 | 0
4. abc | 12 | 0
5. abc | 13 | -965
Надеюсь, это понятно. Мне нужно добиться этой проверки в Teradata (Query / Cursor / StoredProcedure / macros / все остальное также приветствуется.
Если тексты выделены жирным шрифтом, скопируйте и вставьте содержимое в Блокнот ++, как я использовал для публикации здесь.