【发布时间】:2016-04-17 15:18:55
【问题描述】:
我收到这个错误
消息 102,第 15 级,状态 1,第 1 行
'=' 附近的语法不正确。
来自这个查询:
seq = row_number() over
(
partition by t.CustID
order by t.InvoiceID,
t.Date,
CASE WHEN t.S_Type = 'Receipt Voucher' THEN 1 ELSE 2 END
)
;
WITH cte
AS (
SELECT CustID,
[InvoiceID],
S_Type,
DATE,
Debit,
Credit,
seq = row_number() OVER (
PARTITION BY CustID
ORDER BY InvoiceID,
DATE,
CASE
WHEN S_Type = 'Receipt Voucher'
THEN 1
ELSE 2
END
)
FROM Statement
)
SELECT c.[InvoiceID],
c.S_Type AS Type,
c.DATE,
c.Debit,
c.Credit,
b.Balance
FROM cte c
CROSS APPLY (
SELECT Balance = SUM(Debit) - SUM(Credit)
FROM cte AS x
WHERE x.CustID = c.CustID
AND x.seq <= c.seq
) b
WHERE c.CustID = '48'
AND DATE BETWEEN '2015-01-01'
AND '2016-01-01'
ORDER BY seq
我尝试在 seq 前面添加选择,但出现以下错误:
消息 4104,第 16 级,状态 1,第 3 行
无法绑定多部分标识符“t.CustID”。消息 4104,第 16 级,状态 1,第 4 行
无法绑定多部分标识符“t.InvoiceID”。消息 4104,第 16 级,状态 1,第 5 行
无法绑定多部分标识符“t.Date”。消息 4104,第 16 级,状态 1,第 6 行
无法绑定多部分标识符“t.S_Type”。消息 4104,第 16 级,状态 1,第 34 行
无法绑定多部分标识符“.Debit”。
【问题讨论】:
-
我对您发布的代码感到困惑。你真的在执行
WITH cte上面的片段吗?
标签: sql sql-server sql-server-2008 tsql