我需要在相同的 table 每个日期查询多个列

I need a query multiple columns each date in same table

我有这个table结构

Date       | Success      | No of success tran.| Failed     | No. of failed tran  
29/05/2015 | Total Amount | count success tran.|total amount| count failed tran

我要

  1. "Date" 有 datetime.
  2. "Success"求成功金额总和
  3. "Number of success transactions" 总成功数。
  4. "Failed" 有失败金额的总和。
  5. "Number of failed transactions" 计算失败的总金额。
create table test999
( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
thedate datetime not null,
status varchar(20) not null,
amount decimal (10,2) not null
)


insert into test999 (thedate,status,amount) values (now(),'success',9283.92);
insert into test999 (thedate,status,amount) values (now(),'failed',283.22);
insert into test999 (thedate,status,amount) values (now(),'success',3283.92);
insert into test999 (thedate,status,amount) values (now(),'failed',26.26);
insert into test999 (thedate,status,amount) values (now(),'success',9083.02);
insert into test999 (thedate,status,amount) values (now(),'failed',20093.12);
insert into test999 (thedate,status,amount) values (DATE_SUB(NOW(), INTERVAL 17 DAY),'failed',26.26);
insert into test999 (thedate,status,amount) values (DATE_SUB(NOW(), INTERVAL 17 DAY),'success',9083.02);
insert into test999 (thedate,status,amount) values (DATE_SUB(NOW(), INTERVAL 17 DAY),'failed',20093.12);

SELECT
    date(thedate),
    SUM( CASE WHEN status='success' then 1 else 0 end
        ) AS success_count,
    SUM( CASE WHEN status='success' then amount else 0 end
        ) AS success_amount,
    SUM( CASE WHEN status='failed' then 1 else 0 end
        ) AS failed_count,
    SUM( CASE WHEN status='failed' then amount else 0 end
        ) AS failed_amount
FROM test999
group by date(thedate)
order by date(thedate)

date | success_count | success_amt | failed_count | failed_amt   
2015-05-11  1   9083.02 2   20119.38
2015-05-28  3   21650.86    3   20402.60