UPDATE rm
SET rm.cost_sqft = ISNULL((SELECT
CASE
WHEN (rm.rm_cat IN ('8','NON-REPORT') AND rm.space_fee = 'No')
THEN '0'
ELSE rent_w.w * @rental_rate
END
FROM
@rental_weight AS rent_w, bl, rm
WHERE
rm.main_contact = rent_w.space_type
AND rm.description = rent_w.space_quality
AND bl.cost_type = rent_w.campuse_cost
AND bl.bl_id = rm.bl_id),'0')
WHERE rm.bl_id = @bl_id
AND rm.fl_id = @fl_id
AND rm.rm_id = @rm_id
При выполнении этого оператора я получаю эту ошибку:
Сообщение 512, уровень 16, состояние 1, процедура icat_rm_cost_sqft, строка 100 [строка запуска пакета 2]
Подзапрос вернул более 1 значения. Это не разрешено, когда подзапрос следует за =, !=, ‹, ‹= , >, >= или когда подзапрос используется как выражение.
JOIN
в ANSI-92. Стандарт SQL (более 25 лет назад), и его использование не рекомендуется - person marc_s   schedule 09.05.2019