Присвоить результат выписки случая переменной - PullRequest
1 голос
/ 14 октября 2011

Когда я пытаюсь выполнить следующий оператор, я получаю эту ошибку:

"Оператор SELECT, который присваивает значение переменной, нельзя сочетать с операциями извлечения данных."

DECLARE @OFR DECIMAL(18,2)
;
SELECT @OFR = 
CASE SUM(ofr.Quantity)
WHEN 0 THEN 0 
ELSE SUM(ofr.Gross) / SUM(ofr.Quantity)
END
FROM DistributionCosts ofr
;
SELECT @OFR

Я просто хочу вставить результат этого оператора case в переменную, и я застреваю здесь.

Есть идеи?

Спасибо.

1 Ответ

2 голосов
/ 14 октября 2011

Вы уверены, что это ваша ошибка?Я просто выполнил приведенное ниже утверждение, и оно сработало:

DECLARE @OFR DECIMAL(18,2)
;
with DistributionCosts  as
(
  select 1 as quantity, 5 as gross
  union
  select 5 , 20
)
SELECT @OFR = 
CASE SUM(ofr.Quantity)
WHEN 0 THEN 0 
ELSE SUM(ofr.Gross) / SUM(ofr.Quantity)
END
FROM DistributionCosts ofr

;
SELECT @OFR

Если я выберу столбец в дополнение к установке переменной, я получу вашу ошибку ... Если вы выбираете другой столбец, вам нужно будет либо остановитьвыделение этого столбца или присвоение этого столбца локальной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...