将十进制查询结果保存为变量-必须声明标量变量(INNER JOINS, 2位小数,PRECISION AND SCALE



计算平均值:

SELECT 
round(AVG(P.LiczbaUczniow/E.WypełnioneEtaty),2)
FROM [dbo].[UczniowieWojs] P
INNER JOIN EtatyWypełnioneWoj  E ON E.WOJ=P.idTerytWojewodztwo

结果:9.38

声明变量:

DECLARE @ŚrednioUczniówNaNauczycielaPL decimal(3,2);

试图保存变量:

SELECT 
@ŚrednioUczniówNaNauczycielaPL=round(AVG(P.LiczbaUczniow/E.WypełnioneEtaty),2)
FROM [dbo].[UczniowieWojs] P
INNER JOIN EtatyWypełnioneWoj  E ON E.WOJ=P.idTerytWojewodztwo

Msg 137, Level 15, State 1, Line 305必须声明标量变量"@ŚrednioUczniowNaNauczycielaPL" .

我试图解决它:

  1. 我已经阅读了十进制数据类型的文档。
  2. 谷歌
  3. 类似的主题在stackoverflow -他们似乎都是指规模和精度,我认为我得到了正确的。然而,这仍然是错误的。

我一直在努力,真的找不到解决办法。我希望你能告诉我答案。

感谢

@Larnu, @stickybit, @AlwaysLearning指出一个变量必须在同一个徽章中。我分别运行声明和选择命令,这使它们成为不同的东西。这就是错误的原因。

如果我在这些语句之间使用GO命令,也会产生错误的结果。

分号不是批处理分隔符。

总而言之——语句之间不要"go",而是一起运行。

相关内容

  • 没有找到相关文章

最新更新