0
我想對某個月份的amount
列以及前一個月的總和進行求和。現在是第一個月的全部工作,但其後每個月都過高至少2個數量級。與上個月相比,MySQL月份總計月數更多
SELECT month, year, total, previous_month, previous_year, previous_total FROM (
SELECT MONTH(p1.start_date) AS month,
YEAR(p1.start_date) AS year,
SUM(p1.amount) AS total,
SUM(p2.amount) AS previous_total,
MONTH(DATE_SUB(p1.start_date, INTERVAL 1 MONTH)) AS previous_month,
YEAR(DATE_SUB(p1.start_date, INTERVAL 1 MONTH)) AS previous_year
FROM trackings p1
LEFT JOIN trackings p2 ON EXTRACT(YEAR_MONTH FROM DATE_SUB(p1.start_date, INTERVAL 1 MONTH)) = EXTRACT(YEAR_MONTH FROM p2.start_date)
GROUP BY EXTRACT(YEAR_MONTH FROM p1.start_date)
) AS p3;
相關問題:我在做同樣的DATE_SUB
3倍。有沒有辦法清理日期相關的部分以提高效率?
樣品:http://sqlfiddle.com/#!2/3013a/1
請一些樣本輸入輸出闡述。我沒有跟隨。 – JackDev
我同意JackDev。否則,這只是猜測。 –
@JackDev道歉。創建了一個SQL小提琴來展示我的意思。第一個月正確合計,但從第二行開始,輸出不正確(對於total和previous_total) – Chris