2014-02-22 74 views
0

这里就是我尝试才达到:排序SQL结果按月与UNIX

我有2个SQL表: 交易和payplans 波纹管2代表的结构:

交易

uid | plan | date  | payid | status 
------------------------------------ 
12 | 3 | 1388534400 | 334 | 1 
699 | 4 | 1388214400 | 335 | 1 

payplans:

plan | plan_price 
------------------- 
3 | 9.99 
4 | 19.99 

与此查询:

SELECT SUM(plan_price) 
    FROM transations AS t 
     INNER JOIN payplans AS p 
        ON t.plan = p.plan 
WHERE t.status = '1' 

我能计算所有“plan_price”行的总和, 但我想有价格总和每月启动2013年1月 例如:

扬-13 | 9.99

feb-13 | 29.99 等

+0

您正在使用哪种rdbms?此外,请提供'SHOW CREATE TABLE交易;'和'SHOW CREATE TABLE payplans;'或'DESC transactions;'和DESC payplans;' – Alexander

+0

Im使用MySql rdbms – VDonchev

回答

1

对于MySQL

 
SELECT date_format(FROM_UNIXTIME(t.date), '%b-%y') as mnth, 
     SUM(plan_price) 
    FROM transations AS t 
     INNER JOIN payplans AS p 
        ON t.plan = p.plan 
WHERE t.status = '1' 
GROUP BY mnth; 

SQLFiddle

  1. 您使用FROM_UNIXTIME
  2. 转换UNIX_TIMESTAMP迄今为止它格式化为 'MON-YY' 格式DATE_FORMAT
  3. 然后分组按月份。
+0

谢谢,但即时通讯使用mysql – VDonchev

+0

@ V.onchev ok ,请参阅更新 – Alexander