计算平均值:
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" .
我试图解决它:
- 我已经阅读了十进制数据类型的文档。
- 谷歌
- 类似的主题在stackoverflow -他们似乎都是指规模和精度,我认为我得到了正确的。然而,这仍然是错误的。
我一直在努力,真的找不到解决办法。我希望你能告诉我答案。
感谢@Larnu, @stickybit, @AlwaysLearning指出一个变量必须在同一个徽章中。我分别运行声明和选择命令,这使它们成为不同的东西。这就是错误的原因。
如果我在这些语句之间使用GO命令,也会产生错误的结果。
分号不是批处理分隔符。
总而言之——语句之间不要"go",而是一起运行。