【发布时间】:2018-07-02 13:32:04
【问题描述】:
CREATE FUNCTION dbo.Get_LogoFaturaIskonto (
@InvoiceRef int = 0,
@ParentlnRef int = 0,
@Rownumber int = 0
)
RETURNS decimal(18,2)
AS
BEGIN
DECLARE @VALUE decimal(18,2)
WITH NEWTABLE AS
(SELECT ROW_NUMBER() OVER(ORDER BY LOGICALREF ASC) AS ROWNUMBER#
,DISCPER,LOGICALREF,INVOICEREF,PARENTLNREF FROM dbo.LG_002_01_STLINE
WHERE
INVOICEREF = @InvoiceRef AND PARENTLNREF = @ParentlnRef AND LINETYPE = 2)
SELECT @VALUE = (SELECT * FROM NEWTABLE WHERE ROWNUMBER = @Rownumber)
RETURN ISNULL(@VALUE,0)
END
错误信息
消息 319,级别 15,状态 1,过程 Get_LogoFaturaIskonto,第 11 行 关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。
【问题讨论】:
-
错误信息一目了然
-
连错误信息中都提示了解决方法,你试过了吗?
-
顺便说一下,
SELECT @VALUE = (SELECT * FROM...也会报错,因为NEWTABLE包含多个列。
标签: sql sql-server