如果多个IF语句为真,则更新

时间:2014-01-29 13:06:55

标签: sql sql-server

这就是我想象我想要的东西。

SELECT dbo.AUDIT WHERE AUD_CloseDate IS NULL
IF AUD_CloseDate IS NULL
check if score is 100%
then update closed date

我需要选择它为NULL的AUD_CloseDate,如果它为null,则检查total = 100%是否为真,然后用今天的日期更新AUD_CloseDate列。

Total = (Scored / Total - NA) * 100

不确定如何编码。?

4 个答案:

答案 0 :(得分:0)

这应该按预期工作:

UPDATE dbo.AUDIT
SET AUD_CloseDate = GETDATE()
WHERE AUD_CloseDate IS NULL AND (Scored / Total - NA) *100 >= 100

答案 1 :(得分:0)

您想要update语句,而不是select。简化以删除冗余:

update dbo.AUDIT set
AUD_CloseDate = getdate()
where AUD_CloseDate is null
and Scored / Total - NA = 1

答案 2 :(得分:0)

只需使用一段SQL。我使用了一个参数,但你可以硬编码关闭日期的值,或使用当前日期函数之一。

UPDATE dbo.Audit SET AUD_CloseDate = @CloseDateValue 
WHERE AUD_CloseData IS NULL AND total = 100

答案 3 :(得分:0)

UPDATE dbo.AUDIT
SET AUD_CloseDate = GETDATE()
WHERE (AUD_CloseDate IS NULL) AND (Scored / Total - NA) *100 >= 100