2017-04-03 178 views
0

我有這個請求,但不能很好地工作。sum sum amont in mysql

select date_format(date, "%Y-%m-%d") as month, 
              sum(value) as total 
            from :table_orders_sales_commission 
            where date_sub(now(), interval 12 month) <= date 
            group by month 

結果是:

2017-04-02 4.6440 
2017-04-03 2.6200 

如何對一個月(4.644 + 2.62)的總和?

+0

你需要同來提取日期和組一個月,然後你將得到你想要的東西 – Rams

+0

你只需要刪除格式化月份的日期部分f ield。目前,您還包括當天的團體。 date_format(日期,'%Y-%m')爲月份。 – JuveLeo1906

回答

2

使用月功能和

select MONTH(date_format(date, "%Y-%m-%d")) as month, 
sum(value) as total 
from :table_orders_sales_commission 
where date_sub(now(), interval 12 month) <= date 
group by MONTH(date_format(date, "%Y-%m-%d")) 
2

您呼叫一個月日期使用它作爲組。這意味着你正在總結每一天的所有值。我會做這樣的事情:

select date, MONTH(date) as month, 
sum(value) as total 
from :table_orders_sales_commission 
where date_sub(now(), interval 12 month) <= date 
group by month 

MONTH只能從外地返回月份的值,您可以按月份聚合而做求和計算

注意,在MySQL的標準日期格式已經是你想要設置,無需操縱它,所以我刪除相關的部分date_format(date, "%Y-%m-%d")什麼,但你可以把它如果你有一個自定義日期字段掩蓋

+0

獲得您需要的結果有幾種方法,但這可能是最簡單和最好的方法。 – JuveLeo1906