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,则事件主管的状态将错误!用户自动授予批次主控状态不必授予所有批次主控状态。。。。。。但当所有批次主控状态被授予时,事件主控状态被授予