我有一個表(名爲stock_level
)形式SQL行之間的版本比較1天,1周前
product_code | quantity | date
而且我想
product_code | date | quantity today - quantity 1 week ago | quantity today - quantity 1 day ago
所以創建窗體的視圖遠我有我的選擇爲:
SELECT d.product_code, d.date, d.day_change, w.week_change
FROM (SELECT p1.date, p1.product_code, p1.quantity - p2.quantity as day_change
FROM stock_level p1
INNER JOIN stock_level p2
ON p1.product_code = p2.product_code
AND p2.date = p1.date - INTERVAL 1 DAY) d
INNER JOIN
(SELECT p1.date, p1.product_code, p1.quantity - p2.quantity as week_change
FROM stock_level p1
INNER JOIN stock_level p2
ON p1.product_code = p2.product_code
AND p2.date = p1.date - INTERVAL 7 DAY) w
ON d.product_code = w.product_code
AND d.date = w.date
ORDER BY d.date desc
雖然我在做什麼似乎工作,它不覺得很有效率(有三加入例如,當邏輯上它應該採取2)
有沒有更好的辦法,我可以做到這一點?
檢查哪一天是第一天 - 我不確定這是否是問題,但是當我們討論周時期時,我想到了這一點 –
@BogdanBogdanov理想情況下,我會確保它排除週末,但這是另一個問題共!如果你知道一個解決方案,將有助於那將是驚人的 – Edd