2014-11-24 34 views
0

我在为我的学校作业挣扎,我必须根据两个日期之间的差异更新表格列。如果表中的差异低于或等于列'成熟度',则必须将'支付'列设置为'PaymentOK',如果差异大于'到期日',则'支付'必须设置为'Bilker ”。当datediff的更新列大于同一表中的其他列时

我已经试过

#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,我无法结合更新列1如果DATEDIFF是< =或>然后设置列2(基于<>符号)。

任何想法或建议吗? 先谢谢您,非常感谢。

回答

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

用您正在使用的查询更新您的问题? – 2014-11-24 22:49:46

+0

编辑问题。 – pedro 2014-11-25 16:07:31

相关问题