我有這些表:獲得總價格和物品的數量與價格出售變化
- 項目(PK:ID |名稱)
- priceChanges(PK:ID | FK:ITEM_ID |價格| FROM日期| TODATE)
- 請求(PK:ID | deliveryDate)
- requested_category(PK:ID | assigned_quantity | FK:ITEM_ID | FK:REQUEST_ID)
的PriceChanges表保持TR每個項目的價格變化的確認。
我想要將兩個日期之間銷售的物品與ech物品的總收入(價格*數量)進行比較,而數量是該期間以相同價格銷售的物品的總計數(沒有物品的價格變化) 。
這意味着,只要價格變化我得到一個新的行與新的價格出售的項目總數。
這裏是期望輸出的爲例:
id Name sold price total ------ ------- ----- ------ ------ 8P01 51645A 3 1,20 3,60 8P01 51645A 1 2,82 2,82 8P01 51645A 5 2,50 12,50
我已經試過SQL命令,但我不能停止獲取太多的重複列:
SELECT
i.id,
i.name,
sum(rc.assigned_quantity) AS assigned_quantity,
pc.price,
pc.price * sum(rc.assigned_quantity) as total
FROM requested_category rc
LEFT JOIN items i ON rc.item_id = i.id
LEFT JOIN request r ON rc.request_id = r.id
LEFT JOIN priceChanges pc ON pc.item_id = i.id
WHERE
r.delivery_date BETWEEN 'startDate' AND 'endDate'
GROUP BY i.id, i.name, pc.price
我得到的結果是:
id Name sold price total ------ ------- ----- ------ ------ 8P01 51645A 3 1,20 3,60 8P01 51645A 1 1,20 1,20 8P01 51645A 5 1,20 6,00 8P01 51645A 3 2,82 7,86 8P01 51645A 1 2,82 2,82 8P01 51645A 5 2,82 12,10 8P01 51645A 3 2,50 7,50 8P01 51645A 1 2,50 2,50 8P01 51645A 5 2,50 12,50
我試圖在後續查詢以下意見要求:
SELECT i.id, i.name, rc.assigned_quantity, pc.price
FROM requested_category rc
LEFT JOIN items i ON rc.item_id = i.id
LEFT JOIN request r ON rc.request_id = r.id
LEFT JOIN priceChanges pc ON pc.item_id = i.id
WHERE r.delivery_date BETWEEN 'startDate' AND 'endDate'
我得到這樣的結果:
id name assigned_quantity price 8P01 51645A 1 1.20 8P01 51645A 1 2.82 8P01 51645A 1 2.50 8P01 51645A 3 1.20 8P01 51645A 3 2.82 8P01 51645A 3 2.50 8P01 51645A 5 1.20 8P01 51645A 5 2.82 8P01 51645A 5 2.50
謝謝
你可以發表你的查詢返回pls的樣本嗎? – 2015-01-20 23:04:34
請指出(添加到您的文章)您的主鍵和外鍵。 – 2015-01-20 23:04:37
你有沒有嘗試刪除左連接,只是做標準連接? – 2015-01-21 00:01:21