sql - 在虚拟表错误中使用 Sql 函数
问题描述
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 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。
解决方案
至少缺少分号:
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
推荐阅读
- nginx - 基于路径的 nginx url 重写
- r - 没有经纬度的世界地图
- r - 在 R ggplot 中,如何堆叠两个点图?
- python - 我得到了 Python: FileNotFoundError: [Errno 2] No such file or directory
- c# - 如何使用 SUM 计算将 SQL 转换为 Linq
- node.js - Nginx 反向代理路径名冲突
- javascript - 使用 jquery POST 方法向服务器发送登录请求
- java - 使用 SnpSift,只有 0.52% 的 VCF 被 dbsnp 数据库注释
- python - pytorch+tensorboard 错误“AttributeError:‘Tensor’对象没有属性‘items’”
- javascript - VS 代码不建议声明的函数