我试图在同一列中显示三个不同的数字在mysql查询中,我想保持一个月为静态:4月,因此将是这种情况,我想显示当前月,上个月和静态我工作的月份,在这种情况下,让我们坚持使用2012年

Example
Tablename:payment

   id ,  pay_date,    amount
    1    2012-02-12    1000
    2    2012-03-11    780
    3    2012-04-15    890
    4    2012-05-12    1200
    5    2012-06-12    1890
    6    2012-07-12    1350
    7    2012-08-12    1450


所以我想做的是显示4月份的列amount,正如我所说的要保持该行的静态:890,当前月份可以说当前月份是8月:1450一个月的金额,即7月:1350:因此最终结果将如下所示:

april_amount   current_month_amount  previous_month_amount
     890                 1450                 1350


但是我被困在这里:

select amount as april_amount
from payment
where monthname(pay_date) LIKE 'April'
and year(pay_date) LIKE 2012


我希望这个问题写得足够清楚,并非常感谢您的帮助。

最佳答案

如果结果可以是行而不是列:

SELECT MONTHNAME(pay_date), amount FROM payment

WHERE  pay_date BETWEEN '2012-04-01'
                    AND '2012-04-30'

    OR pay_date BETWEEN CURRENT_DATE
                      - INTERVAL DAYOFMONTH(CURRENT_DATE) - 1 DAY
                    AND LAST_DAY(CURRENT_DATE)

    OR pay_date BETWEEN CURRENT_DATE
                      - INTERVAL DAYOFMONTH(CURRENT_DATE) - 1 DAY
                      - INTERVAL 1 MONTH
                    AND LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH)


sqlfiddle上查看。

关于mysql - 使用mysql在表中显示上个月和当前月份的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12150663/

10-16 14:59