2011-10-14 55 views
0

當我嘗試運行下面的語句,我得到這個錯誤:「一個值賦給變量不能與數據檢索操作結合的SELECT語句」分配case語句導致可變

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

這對我很有用。確定你的查詢中沒有其他專欄? –

+1

也爲我工作。 – 2011-10-14 18:19:17

+0

是的,我有其他列,我省略了,我分開了。對不起,謝謝! – Tom

回答

1

你確定這是你的錯誤嗎?我只是跑下面的語句和它的工作:

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 

如果我選擇另外一列設置變量我得到你的錯誤...如果你選擇另一列則需要或者停止該選擇列或將該列分配給本地變量。

+0

是的,那就是問題所在,我在其他專欄間隔了......謝謝! – Tom