当我尝试运行以下语句时,出现此错误:
“为变量赋值的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语句的结果粘贴到一个变量中,我就会被困在这里。
有什么想法吗?
感谢。
答案 0 :(得分:2)
您确定这是您的错误所在吗?我刚刚运行了以下声明并且有效:
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
如果除了设置变量之外我选择了一个列,我确实会收到您的错误...如果您选择其他列,则需要停止选择该列或将该列分配给本地变量。