【发布时间】:2011-07-29 04:43:20
【问题描述】:
我有两个表,例如 STR_IndentHeader 和 STR_IndentDetail。
STR_IndentDetail:
IndentID ItemID ItemStatusID
-------- ------ ------------
1 22 4
1 23 4
2 11 4
2 12 3
2 13 3
STR_IndentHeader:
IndentID StatusID
-------- -----------
1 1
2 1
这里我要更新STR_IndentHeader StatusID = 4,当所有STR_IndentDetail.ItemID 的ItemStatusID = 4 相对于IndentID。否则我想更新 STR_IndentHeader.StatusID = 3。
在上表中,在 STR_IndentDetail 中,对于 IndentID“1”,所有 Items 的 ItemStatusID 都是 4。所以我们有 Update STR_IndentHeader.StatusID = 4。 但是对于 IndentID “2”,一个 Item 的(即 ItemID=11)ItemStatusID = 4 和 Remaining 两个 ItemStatusID = 3。所以在这种情况下,我们必须更新 STR_IndentHeader.StatusID = 3。 我希望它能提供更好的想法。如何做到这一点?
我对上述表格的期望结果是这样的:
STR_IndentHeader:
IndentID StatusID
-------- -----------
1 4
2 3
【问题讨论】:
-
我看不出 PUR_POIndent 与此有什么关系。您只想为 STR_IndentDetail 中的每个 IndentID 提供
MIN(ItemStatusID),还是巧合? -
这里,我将 POID 作为参数传递。我需要使用 STR_IndentDetail 根据 PUR_POIndent 表检查项目和缩进,然后更新 STR_IndentHeader。
-
您在 STR_IndentDetail 中将 STR_IndentHeader 的 StatusID 设置为与之关联的
MIN(ItemStatusID)是巧合,还是您想用它来更新它? -
不,那不是 MIN(ItemStatusID),我想用 StatusID = 3 更新 STR_IndentHeader
标签: sql sql-server sql-server-2005 sql-update