根据条件语句MYSQL昨天的价格在另一列中创建值

时间:2017-11-23 04:33:47

标签: mysql

希望有人可以帮我这个:

我想在MYSQL中创建这个表。我只有DATE和Closing Columns。我需要创建第三列,但只需要分类,如果行关闭值小于它上面的行,则为YES。因此,为什么顶行的那两列是空的,因为未来的价格是不可用的。

如果可能的话,第四列,其中行上一行的变化大于1%,那么给它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

感谢任何帮助。谢谢

1 个答案:

答案 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);