2014-10-08 61 views
0

我想檢索本月的數據量 減去上個月的數量 ,並根據各自代碼扣除計量表的值。 然後總結一下。帶多個子查詢的查詢優化

約有8000條記錄。

但我嘗試記錄5條記錄,需要2分53秒的時間, 100條記錄需要時間(1分鐘1:57秒)。 真的很重要。

我有這樣的查詢。

SELECT code hvCode, 
     IFNULL((SELECT meter 
       FROM bmrpt 
       WHERE waktu_foto LIKE '2014-05%' 
       GROUP BY code HAVING code = hvCode),0) 
     -IFNULL((SELECT meter 
       FROM bmrpt WHERE waktu_foto LIKE '2014-04%' 
       GROUP BY code HAVING code = hvCode),0)hasil 
FROM bmrpt group by code; 

有沒有人有想法改變查詢優化?

這個sqlfiddle http://www.sqlfiddle.com/#!2/495c0/1

問候

+0

數據類型? – diEcho 2014-10-08 05:30:10

+0

@diEcho'datetime' – 2014-10-08 05:35:31

+0

請在http://www.sqlfiddle.com上創建一個演示表 – diEcho 2014-10-08 05:38:05

回答

0

雖然你的問題不清楚,但嘗試下面的子查詢,因爲我瞭解`waktu_foto`的

SELECT COALESCE(SUM(`meter`),0) FROM table WHERE code ='hvCode' AND MONTH(`date_column`) = 5 
- 
SELECT COALESCE(SUM(`meter`),0) FROM table WHERE code ='hvCode' AND MONTH(`date_column`) = 4 
+0

今年情況如何?我每個月在一個月內呈現數據 – 2014-10-08 06:03:49

+0

然後再增加一個條件。 – diEcho 2014-10-08 06:12:09