У меня есть выражение случай в вычисляемого столбца в запросе, который будет средние значения DATA_SCALE_1
, DATA_SCALE_2
, DATA_SCALE_3
, DATA_SCALE_4
, где все из которых имеют тип данных целого числа.псевдоним столбца не признается в случае выражение
CASE
WHEN Form_Ref = 1091
THEN (DATA_SCALE_1 + DATA_SCALE_2 + DATA_SCALE_3 + DATA_SCALE_4)/4
ELSE
CASE WHEN DATA_SCALE_1 IS NOT NULL
THEN DATA_SCALE_1
ELSE
OLD_FIELD_CUST_TBL.SELECT_TEXT
END
END AS Satisfaction
Form_Ref
является псевдонимом dbo.SU_ENTITY_TYPE.Ref
. Когда я использую Form_Ref
в условии, он всегда по умолчанию принимает предложение ELSE. Когда я явно укажу dbo.SU_ENTITY_TYPE.Ref
, он выполняет предложение THEN, но вычисленное среднее округляется до ближайшего целого. Мне нужно, чтобы это было не более двух знаков после запятой.
Любые входные данные о том, почему псевдоним не распознается? Благодаря!
ОБНОВЛЕНИЕ:
Для того, чтобы ограничить в среднем до двух знаков после запятой, я использовал
CAST(CaseExpression AS NUMERIC(x,2))
, где x
это максимальное число цифр, включая 2 десятичных чисел.
Разделите на '4.0'. Я предполагаю, что все поля 'DATA_SCALE' являются ** целыми числами **. –