Mysql 如何使用子查询统计上个月的记录
我有一张桌子,看起来像: +---+------+---+-----+--------+-----------+ |id | tid | pid | amt | transtime | DateCreated| +---+------+---+-----+--------+-----------+ |784 | LDC3N0JF1Z | 784 | 300.0000 | 20170412174304 | 2017-04-12 17:43:42| |2007-05-12 12:50:15| |2007-05-11 19:28:19| |781 | LDA2MAUW08 | 781 | 200.0000 | 20170410174635 | 2017-07-10 17:47:01| |780 | lda8amqt4 | 780 | 200.0000 | 20170410173245 | 2017-04-10 17:33:19| +---+------+---+-----+--------+-----------+ 我需要一个查询,以提供如下所示的结果。我想要的结果是这样的Mysql 如何使用子查询统计上个月的记录,mysql,Mysql,我有一张桌子,看起来像: +---+------+---+-----+--------+-----------+ |id | tid | pid | amt | transtime | DateCreated| +---+------+---+-----+--------+-----------+ |784 | LDC3N0JF1Z | 784 | 300.0000 | 20170412174304 | 2017-04-12 17:43:42| |2007-05-12 12:50:15| |20
id|tid |this_month_amount|amount_previous_month |amount_difference
------------------------------------------------------------------
1 |LDC3N0JF1Z |300 | 700 |400
我也尝试过这个问题。这就是我所拥有的
选择payment.id、payment.tid、payment.DateCreated作为dc、payment.amount作为本月金额、内部联接
选择sumamount作为t2 sum group by amount from payments,其中DateCreated=DATEADDmm,-1,dcsubquery on payments.id=subquery.id order by id desc limit 5
因此,查询应选择当月的金额,然后选择前几个月的金额,然后在名为amount\u difference的字段中显示差异
这是错误的,所以在尝试了很多之后,我想从你们那里得到一些帮助。谢谢。要获取当月的值:
select tid, sum(amount) as this_month,
from t
where date_created >= curdate() + interval (1 - day(curdate()) day and
date_created < curdate() + interval (1 - day(curdate()) day + interval 1 month
group by tid;
间隔1个月和
创建的日期select tid,
sum(case when month(date_created) = month(curdate()) then amount end) as this_month,
sum(case when month(date_created) <> month(curdate()) then amount end) as last_month,
(sum(case when month(date_created) = month(curdate()) then amount end) -
sum(case when month(date_created) <> month(curdate()) then amount end)
) as diff
from t
where date_created >= curdate() + interval (1 - day(curdate()) day -