Каков наилучший способ обновления столбца myAmountColumn в myTable на основе суммы столбца Amount в myOtherTable, объединяющей портфолио и безопасность столбцов, кроме случаев, когда myTable.portfolio = 'ABC', я хочу присоединить его к myOtherTable.portfolio ='123'.
Спасибо.
Это ожидаемый результат в myTable и пример данных в myOtherTable:
myTable
Portfolio Security myAmountColumn
ABC A 1000 --> this is from
myOtherTable.Amount where Portfolio = '123'
DEF B 2000 --> this is from
myOtherTable.Amount where Portfolio = 'DEF'
myOtherTable
Portfolio Security Amount
123 A 1000
DEF B 2000
В приведенном ниже запросе выдается ошибка
Сообщение 8152, уровень 16, состояние 14, строка 704
Строка или двоичные данные будут усечены.
Оператор завершен.
update j
set myAmountColumn =
(
select sum
(
abs(convert(float,c2.Amount))
)
from myOtherTablec2
where c2.portfolio =
CASE WHEN j.portfolio = 'ABC' THEN '123'
ELSE j.portfolio
END
and c2.pta_security = j.tab_security
),
CommentsColumn = CommentsColumn + ' my comments'
from myTable j, myOtherTablec
where c.portfolio =
CASE WHEN j.portfolio = 'ABC' THEN '123'
ELSE j.portfolio
END
and c.pta_security = j.tab_security