Sql 所有状态值相同,然后更新另一个表状态
我有两张桌子,它们的价值是Sql 所有状态值相同,然后更新另一个表状态,sql,sql-server-2012,Sql,Sql Server 2012,我有两张桌子,它们的价值是 批次主数据: event-id lotid status 1 1 Awarded 1 2 Awarded 1 3 Awarded event-id status 1 Open 和事件主控程序: event-id lotid status 1 1 Awarded 1
批次主数据
:
event-id lotid status
1 1 Awarded
1 2 Awarded
1 3 Awarded
event-id status
1 Open
和事件主控程序
:
event-id lotid status
1 1 Awarded
1 2 Awarded
1 3 Awarded
event-id status
1 Open
如果所有
lot master
状态均已授予,则使用update
查询event master
状态更新。如果您想这样做,则可以尝试这样做
DECLARE @Count AS INT = 0,
@ConditionCount INT = 0
SELECT @Count = COUNT(1) FROM lot-MASTER
SELECT @ConditionCount = COUNT(1) FROM lot-MASTER WHERE STATUS = 'Awarded'
IF (@ConditionCount = @Count)
BEGIN
UPDATE EVENT-MASTER
SET STATUS = 'Awarded'
END
那你想要什么,不清楚<代码>如果授予了所有批次主状态,则使用更新查询更新事件主状态,然后您想更新什么?通常,存储“计算”值(来自其他列)是一个坏主意。例如,如果您将未授予的lotid添加到事件id=1,则事件主管的状态将错误!用户自动授予批次主控状态不必授予所有批次主控状态。。。。。。但当所有批次主控状态被授予时,事件主控状态被授予