如果同一行中另一列的值等于临时表中的值,我试图将1添加到列中。下面是代码。当我从存储过程运行代码时,它会为每个列添加1,而不仅仅是临时表中显示的那些。有没有人看到查询有什么问题?
DECLARE @LineTable TABLE (
TempLineNumber FLOAT)
INSERT @LineTable
SELECT DocumentNumber
FROM chargebackdetailtemptable
GROUP BY DocumentNumber
HAVING Count(*) > 1
UPDATE ChargebackDetailTempTable
SET LineNumber = (SELECT Max(LineNumber) + 1
FROM ChargebackDetailTempTable c
LEFT OUTER JOIN @LineTable c2
ON c.DocumentNumber = c2.TempLineNumber
WHERE c.DocumentNumber IS NOT NULL
AND c2.TempLineNumber IS NOT NULL)
答案 0 :(得分:0)
UPDATE ChargebackDetailTempTable
SET LineNumber = LineNumber + 1
FROM ChargebackDetailTempTable
INNER JOIN @LineTable lt ON lt.DocumentNumber = ChargebackDetailTempTable.DocumentNumber
WHERE lt.DocumentNumber IS NOT NULL
您可以在更新语句中使用联接。我不确定你是不是来自lt
的行号或某些内容(在上面问题的子查询中别名为c2
)。无论哪种方式,这应该可以让你到达目的地。