MySQL可以将日期作为月份拆分到不同的列中吗?

igetnqfo  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(153)

我试图将一个包含dd-mm-yyyy的列拆分为基于月份的不同列。然后将另一个列的值(金额)分配到新生成的列Month下。
例如我的数据库如下:

id   name    amount    date
1    Jane    1500      22-11-2022
2    Peter   3200      13-10-2022
3    Adam    500       15-11-2022
4    Alice   6000      30-09-2022

我的预期输出:

id   name    amount    date          Oct 2022   Nov2022   Jan 2022
1    Jane    1500      22-11-2022       --       1500        --
2    Peter   3200      13-10-2022      3200       --         --
3    Adam    500       15-11-2022                 500  
4    Alice   6000      01-01-2023       --        --         6000

附加:月份列必须基于日期列的内容,而不是硬编码

qf9go6mv

qf9go6mv1#

SELECT 
    `id`,`name`,`amount`,`date`,(
        CASE WHEN 2022=YEAR(`date`)
        AND MONTH(`date`)=10 THEN `amount` ELSE '--' END
    ) AS `Oct 2022`,
    (
        CASE WHEN 2022=YEAR(`date`)
        AND MONTH(`date`)=11 THEN `amount` ELSE '--' END
    ) AS `Nov 2022`,(
        CASE WHEN 2022=YEAR(`date`)
        AND MONTH(`date`)=1 THEN `amount` ELSE '--' END
    ) AS `Jan 2022`
FROM `tbl`;

相关问题