【发布时间】:2021-11-30 02:42:10
【问题描述】:
我在 SQL Server 中构建了一个查询,该查询正在查找最大跟踪编号,并将跟踪编号为零的作业中具有相同批号的每条记录的当前值加 1。我的查询是用相同的编号更新此作业中的所有记录。我需要这项工作中的每条记录都有不同的编号。
这是我的查询:
UPDATE TEST.DBO.J_CordToolARCCutSheetPlanning
SET TrackingNumber = (SELECT (MAX(trackingNumber) + 1) AS track
FROM TEST.DBO.J_CordToolARCCutSheetPlanning j)
WHERE JobNumber = '1234'
示例:
Job LotNO SerialNo TrackingNumber
------------------------------------------
1234 199111 -001 40001 0
1234 199111 -001 40033 0
1234 199111 -004 40050 0
1234 199111 -004 40051 0
1234 199111 -008 40111 5
1234 199111 -008 40112 5
在此示例中,最大跟踪编号为 5。
我需要它以最大 (5) 加一的方式更新每条记录。
这就是我需要它做的事情
Job LotNO SerialNo TrackingNumber
------------------------------------------
1234 199111 -001 40001 6
1234 199111 -001 40033 6
1234 199111 -004 40050 7
1234 199111 -004 40051 7
1234 199111 -008 40111 5
1234 199111 -008 40112 5
【问题讨论】:
-
但是您的示例数据不是将每一行更新1?您要为同一个批号重复使用同一个跟踪号?
-
如果 job 和 lotNo 是相同的更新,则使用最大编号更新跟踪编号(示例中为 5 加 1。
-
那么请更新您的问题以澄清这一点,因为目前您说“我需要这项工作中的每条记录都有不同的编号。”
标签: sql sql-server tsql