我正在尝试通过单个查询更新多个键记录,但是我不知道正确的语法。
这是我的尝试:
UPDATE hL
SET hL.[QUANTITY_COMPLETED] = (SELECT COUNT([SERIAL_NUMBER])
FROM [dbo].[ORDER_ITEMS] oO
INNER JOIN [dbo].[JOB_HISTORY] jH ON jH.[ORDER_NUMBER] = Oo.[ORDER_NUMBER]
INNER JOIN [dbo].[JOB_HISTORY_LINE] hL ON hL.[LINE_NUMBER] = oO.[LINE_NUMBER]
WHERE oO.[LINE_NUMBER] = hL.[LINE_NUMBER])
FROM [dbo].[JOB_HISTORY_LINE] hL
问题:以上内容将SUM
的项目粘贴在ORDER_ITEMS
中的所有条目中JOB_HISTORY_LINE
。这是不对的。
JOB_HISTORY_LINE
仅包含LINE_NUMBER
与关联的每个信息ORDER_NUMBER
。在每个项目ORDER_ITEMS
具有关联的LINE_NUMBER
并且ORDER_NUMBER
可以通过被引用JOB_HISTORY
,其中包含ORDER_NUMBER
。
我们的目标:每行JOB_HISTORY_LINES
应显示相关COUNT
的SERIAL_NUMBERS
从ORDER_ITEMS
表。
请帮助我解决这个问题,以便我了解为什么要搞砸了:)
也许您正在寻找的是相关子查询:
UPDATE hL
SET hL.[QUANTITY_COMPLETED] = (SELECT COUNT([SERIAL_NUMBER])
FROM [dbo].[ORDER_ITEMS] oO INNER JOIN
[dbo].[JOB_HISTORY] jH
ON jH.[ORDER_NUMBER] = Oo.[ORDER_NUMBER]
WHERE oO.[LINE_NUMBER] = hL.[LINE_NUMBER]
)
FROM [dbo].[JOB_HISTORY_LINE] hL;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句