2017-11-23 6 views
0

を望んで誰かが私にこれを助けることができる条件文のMYSQLに基づく別の列の値を作成します。は昨日の価格

私はMySQLで作成したいこのテーブルを持っています。私はDATEとClosing Columnsしか持っていません。私は3番目の列を作成する必要がありますが、値を閉じる行がその行よりも小さい場合はYESです。したがって、なぜ将来の価格が利用可能でないため、一番上の行の2列が空であるか。また

可能であれば行の上の行からの変化が1%以上である第4列は、それを1、それ以外のときは0

DATE  Closing Change GOODorBAD 

11/21/2017 155.5 -  - 
11/20/2017 153.83 yes  1 
11/17/2017 153.95 no  0 
11/16/2017 154.54 no  0 
11/15/2017 152.59 yes  1 
11/14/2017 153.31 no  0 
11/13/2017 153.87 no  0 
11/10/2017 153.68 yes  0 
11/9/2017 153.69 no  0 
11/8/2017 154.5 no  0 

を与える任意の助けを理解されたいです。ありがとうございます

答えて

0

CASEの条件はSELECTの中で使用できます。

UPDATE TEST_TABLE T 
    SET T.CHANGE = (SELECT CASE WHEN T.CLOSING < T2.CLOSING 
           THEN 'YES' 
           WHEN T.CLOSING > T2.CLOSING 
           THEN 'NO' 
           ELSE 
           NULL 
         END 
        FROM TEST_TABLE T2 
         WHERE T2.DATE > T.DATE 
        ORDER BY T2.DATE LIMIT 1), 

     T.GOODORBAD = (SELECT CASE WHEN (T2.CLOSING - T.CLOSING) > (T.CLOSING/100) 
            THEN '1' 
           WHEN (T2.CLOSING - T.CLOSING) <= (T.CLOSING/100) 
            THEN '0' 
           ELSE 
            NULL 
          END 
         FROM TEST_TABLE T2 
         WHERE T2.DATE > T.DATE 
         ORDER BY T2.DATE LIMIT 1);