Я просто делаю предположение на основе вашей (предполагаемой) структуры базы данных. Я бы рекомендовал полностью перевести вычисления в запрос, чтобы сервер БД выполнял свою работу лучше всего. Манипулирование чем-то подобным в CF менее чем оптимально.
Вам придется проверить это, но я думаю, что это достаточно близко, чтобы начать:
<cfquery name="GET_SHIP_ROW" datasource="#DSN2#">
SELECT
SR.*,
S.STOCK_CODE,
( (sr.amount*sr.price) * ( (100-discount)/100 ) * ( tax/100 ) ) as itemCost
FROM
SHIP_ROW SR,
#dsn3_alias#.STOCKS S
WHERE
SR.STOCK_ID = S.STOCK_ID AND
SR.SHIP_ID = #attributes.ship_id#
ORDER BY
SR.SHIP_ROW_ID
</cfquery>
Как только у вас есть итоговые показатели в наборе записей, выполнить запрос запросов для получения суммы всех позиций довольно просто:
<cfquery name="total" dbtype="query">
select sum(itemCost) as shipmentTotal from GET_SHIP_ROW
</cfquery>
Это помогает?