2017-04-17 61 views
0

因此,我有一項任務,我需要按日期和Provider_name對結果進行分組,但目前我的代碼列出了多個日期和提供程序。 (每天需要有一個供應商(總共25天),所以我的表格顯示了當天供應商獲得了多少消息,他們賺了多少)按幫助分組(按多個分組,重複)

這需要是我的結果。 Result table

But this is what i'm currently getting

這是我的代碼目前

SELECT date_format(time, '%Y-%m-%d') AS Date, provider_name, COUNT(message_id) AS Messages_count, SUM(price) AS Total_price 
FROM mobile_log_messages_sms 
INNER JOIN service_instances ON service_instances.service_instance_id = mobile_log_messages_sms.service_instance_id 
INNER JOIN mobile_providers ON mobile_providers.network_code = mobile_log_messages_sms.network_code 
WHERE time 
BETWEEN '2017-02-26 00:00:00' 
AND time 
AND '2017-03-22 00:00:00' 
AND price IS NOT NULL 
AND price <> '' 
AND service IS NOT NULL 
AND service <> '' 
AND enabled IS NOT NULL 
AND enabled >=1 
GROUP BY provider_name, time 
ORDER BY time DESC 

你能告訴我在哪裏,我已經搞砸了,我實在想不出答案。

+0

你是分組的時間這將結果進行分組的一天,包括小時,分鐘和秒所以這就是爲什麼你當天獲得不同的計數。請嘗試按天分組。 – dsharew

回答

1

嘗試這樣的:

.... 

    GROUP BY provider_name, date_format(time, '%Y-%m-%d') 
    ORDER BY time DESC 

您是分組的時間這將組的結果來時間,包括小時,分鐘和秒等等...這就是爲什麼你正從同一天不同的計數。請嘗試按天分組。

+1

woow。你打我:) – Samir

+0

;)你明白了原因? – dsharew

+0

非常感謝,它的工作! :D –

0

time列是datetime。所以它按日期和時間分組,而不僅僅是日期。

更改GROUP BY語句

GROUP BY provider_name, date_format(time, '%Y-%m-%d') 
+0

非常感謝! :) –