2014-11-24 28 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

相關問題