当datediff大于同一表中的其他列时更新列

时间:2014-11-24 22:23:33

标签: sql sql-server syntax-error

我正在努力完成学校作业,我必须根据两个日期之间的差异更新表格列。如果差异低于或等于表中的“成熟度”列,我必须将“付款”列设置为“付款确认”,如果差异大于“到期日”,则“付款”必须设置为“Bilker” ”。

我试过

#IFNOTFieldExists(TableName=Invoices;FieldName=Payment;) 
Alter table Invoices ADD COLUMN Payment TEXT 
GO 
UPDATE Invoices SET Payment = CASE 
WHEN DATEDIFF (Day, Datum, ZaplateneDna) <= Maturity 
THEN 'PaymentOK' 
ELSE 'Bilker' 

END 
#ENDIF

尝试过IF THEN语句,更新CASE语句,但我仍然遇到语法错误。 我在sql中有点新,我无法组合UPDATE column1如果DATEDIFF是&lt; =或&gt;然后将Column2设置为(基于&lt;&gt;符号)。

有任何想法或建议吗? 提前谢谢,非常感谢。

1 个答案:

答案 0 :(得分:2)

UPDATE Invoices
SET Payment = CASE 
                  WHEN DATEDIFF(DAY, [Date], DateOfPayment) <= Maturity 
                  THEN 'PaymentOK'
                  ELSE 'Bilker' 
              END