【发布时间】:2023-03-18 17:17:01
【问题描述】:
我正在准备将临时表的结果设置为一个变量,这样做我做错了什么??
WITH Consolidado_B (CANTIDAD,CALIDAD) AS(
select
SUM(cbs) [Cantidad],
'BLANCOS' CALIDAD
from CBases c
inner join v_Bases v on v.CODIGO=c.basecodi
where v.[NOMBRE COMPLETO] like '%blanco%' and
c.colorcodi=@COLORCODI
union
select
SUM(cbs),
'ACCENT'
from CBases c
inner join v_Bases v on v.CODIGO=c.basecodi
where v.[NOMBRE COMPLETO] like '%Acce%'
and c.colorcodi=@COLORCODI
)
SET @TOTALBASES=
(
SELECT sum(CANTIDAD) TOTAL
FROM Consolidado_B
)
【问题讨论】:
-
“不起作用”是什么意思? (另外,你的标题不用SHOUT,我们可以读懂你的“内心声音”。)仅仅是因为你使用
SET而不是SELECT吗?如果是这样,这只是一个印刷错误。 -
对不起,它只是说靠近
SET的语法错误,所以我尝试而不是使用SET尝试使用SELECT COLUMN INTO @VARIABLE FROM TABLE,但它无论如何都没有工作语法错误坚持 -
但你仍然没有告诉我们那个错误是什么。 ://
-
您当然想使用
UNION ALL,即使您的 CTE 中生成的两个总和不太可能完全相同。但是我现在看到您在结果集中包含了一个文字,因此您勉强避免了这种逻辑错误 - 以更高的复杂性和更低的效率为代价。
标签: sql sql-server variables transactions temporal-tables