获取错误 - 必须声明标量变量

时间:2014-07-16 13:40:52

标签: sql-server

BEGIN
DECLARE @MDATE DATE,
 @LTCT_DATE AS DATE


SET @MDATE ='20140726'
SET @LTCT_DATE = '20140727'

SELECT (CASE WHEN @MDATE < @LTCT_DATE THEN (DATEADD(MM,1,@LTST_DATE))
            ELSE #DATE.LTCT_DATE
            ) AS NEXT_C_DATE

3 个答案:

答案 0 :(得分:2)

您的变量名称中有拼写错误

DECLARE @LTCT_DATE DATE

你使用

@LTST_DATE

答案 1 :(得分:0)

我不确定,但我删除了&gt;&#39;&lt;&#39;&lt;单引号的东西。它可能会认为它是一个字符串。标量基本上意味着&#34;数字&#34;。

答案 2 :(得分:0)

除了之前的答案,您还需要一个&#39; END&#39;关闭你的CASE声明,以及&#39; END&#39;到你的开始,所以代码应该是这样的:

    BEGIN
        DECLARE @MDATE DATE, @LTCT_DATE DATE

        SET @MDATE ='20140726'
        SET @LTCT_DATE = '20140727'

        SELECT 
            CASE WHEN @MDATE < @LTCT_DATE 
                    THEN (DATEADD(MM,1,@LTCT_DATE))
                 ELSE #DATE.LTCT_DATE 
            END AS NEXT_C_DATE
    END