2017-08-18 6 views
0

特定の条件で複数のフィールドを更新する必要があります。私の構文が間違っていることは分かっていますが、何が間違っているのか分かりませんが、これは簡単なはずですが、クリックしていないだけです。助けてください。WHERE、WHEN、THENを使用してSQLで複数のフィールドを更新する

UPDATE WO_TASK_LABOR 
SET BILLING_RATE  
    WHEN SYSUR_AUTO_KEY = 577 THEN 26.51 
    WHEN SYSUR_AUTO_KEY = 605 THEN 18.71 
    WHEN SYSUR_AUTO_KEY = 637 THEN 16.84 
    WHEN SYSUR_AUTO_KEY = 741 THEN 16.50 
    WHEN SYSUR_AUTO_KEY = 792 THEN 26.00 
    WHEN SYSUR_AUTO_KEY = 808 THEN 14.99 
    WHEN SYSUR_AUTO_KEY = 812 THEN 24.51 
    WHEN SYSUR_AUTO_KEY = 813 THEN 26.00 
    WHEN SYSUR_AUTO_KEY = 884 THEN 28.00 
    WHEN SYSUR_AUTO_KEY = 768 THEN 21.00 
    WHEN SYSUR_AUTO_KEY = 892 THEN 21.50 
    WHEN SYSUR_AUTO_KEY = 910 THEN 20.50 
    WHEN SYSUR_AUTO_KEY = 920 THEN 22.00 
    WHEN SYSUR_AUTO_KEY = 962 THEN 15.00 
    WHEN SYSUR_AUTO_KEY = 970 THEN 23.00 
    WHEN SYSUR_AUTO_KEY = 971 THEN 56.36 
    WHEN SYSUR_AUTO_KEY = 977 THEN 16.00 
    WHEN SYSUR_AUTO_KEY = 979 THEN 24.00 
    WHEN SYSUR_AUTO_KEY = 982 THEN 20.00 
    WHEN SYSUR_AUTO_KEY = 985 THEN 18.00 
    WHEN SYSUR_AUTO_KEY = 828 THEN 26.50 
    WHEN SYSUR_AUTO_KEY = 834 THEN 23.00  
END 
+0

(リスト)でsysur_auto_keyは 'ので、あなたがwo_task_laborのすべてのレコードを横断していないところあなたはまた'追加することができます。代わりに更新する必要のあるキーを持つ人だけです。 – xQbert

答えて

2

あなたはCASEを逃した:

UPDATE WO_TASK_LABOR 
    SET BILLING_RATE = 
    CASE 
    WHEN SYSUR_AUTO_KEY = 577 THEN 26.51 
    WHEN SYSUR_AUTO_KEY = 605 THEN 18.71 
    WHEN SYSUR_AUTO_KEY = 637 THEN 16.84 
    WHEN SYSUR_AUTO_KEY = 741 THEN 16.50 
    WHEN SYSUR_AUTO_KEY = 792 THEN 26.00 
    WHEN SYSUR_AUTO_KEY = 808 THEN 14.99 
    WHEN SYSUR_AUTO_KEY = 812 THEN 24.51 
    WHEN SYSUR_AUTO_KEY = 813 THEN 26.00 
    WHEN SYSUR_AUTO_KEY = 884 THEN 28.00 
    WHEN SYSUR_AUTO_KEY = 768 THEN 21.00 
    WHEN SYSUR_AUTO_KEY = 892 THEN 21.50 
    WHEN SYSUR_AUTO_KEY = 910 THEN 20.50 
    WHEN SYSUR_AUTO_KEY = 920 THEN 22.00 
    WHEN SYSUR_AUTO_KEY = 962 THEN 15.00 
    WHEN SYSUR_AUTO_KEY = 970 THEN 23.00 
    WHEN SYSUR_AUTO_KEY = 971 THEN 56.36 
    WHEN SYSUR_AUTO_KEY = 977 THEN 16.00 
    WHEN SYSUR_AUTO_KEY = 979 THEN 24.00 
    WHEN SYSUR_AUTO_KEY = 982 THEN 20.00 
    WHEN SYSUR_AUTO_KEY = 985 THEN 18.00 
    WHEN SYSUR_AUTO_KEY = 828 THEN 26.50 
    WHEN SYSUR_AUTO_KEY = 834 THEN 23.00 
    ELSE 0 
    END 
WHERE ENTRY_DATE >= '01-JUN-17' 
+0

ありがとうございます、しかし、私はまた、これらの特定のすべてのレコードのために、どこの条件 = '01 -JUN-17 '>を追加する必要があります、私はいくつかの異なる反復を試みました。構文を取得します。どんな支援も大歓迎です。 –

+0

簡単に 'WHERE'節を使うことができます。私は私の答えを編集しました、それを確認してください。 –

+0

@BrandonPacheco:親切にもアリの答えを受け入れる:-) – zarruq

関連する問題