我试图在同一列中显示三个不同的数字在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/