首页 > 解决方案 > 用mysql将两列视为一列

问题描述

我有一张有两次付款的桌子,每张都有自己的日期,如下所示:

table
______________
id
.......
payment1
payment1_date
payment2
payment2_date

我需要的是一个有序的付款清单,忽略它是 payment1 还是 payment2。

付款可以都是空的,只有一个,或两者都填满。

结果如下所示:

id        payments      date         ... 
3         (payment1)    2018-08-01
5         (payment2)    2018-08-03
4         (payment2)    2018-08-04
3         (payment2)    2018-08-07

Payment1 将是预付款,而 payment2 将是其余的,但是对于会计信息,我只想显示按日期排序的所有付款,即该日期 paymentx_date

标签: mysqlsql

解决方案


我会尝试:

    select id,payment1 as payment, payment1_date as payment_date
    from table
    where payment1 is not null or payment1 <> ''
    union 
    select id,payment2 as payment, payment2_date as payment_date
    from table
    where payment2 is not null or payment2 <> ''
    order by 3

推荐阅读