標題混淆? :)來自2個表的SQL連接,從第三個連接的數據分組
我試圖從我的購物車數據庫中生成有用的報告。
有一個表orders
包含「date_ordered」(和一堆其他的東西我不關心)和鍵「orders_id」
第二個表,orders_products
,具有相同的「orders_id」鍵並有關於命令的信息。特別是,我對「products_id」,「products_quantity」和「final_price」感興趣
我想要做的是生成銷售報表,顯示數量*價格的總和,並在date_ordered爲兩個日期。我可以這樣做:
SELECT op.products_id AS 'PID',
SUM(op.products_quantity) AS 'sales Q',
SUM(op.final_price * op.products_quantity) AS 'sales $'
FROM orders o
JOIN orders_products op
ON o.orders_id = op.orders_id
WHERE o.date_purchased
BETWEEN '2012-01-01' AND '2012-12-31'
GROUP BY op.products_id
這似乎工作正常。但是現在我「簡單地」想要在顯示產品名稱的報告中添加另一列。該數據位於「products_name」列中的另一個表中,products_description
。所以,我想這一點:
SELECT pd.products_name AS 'Product',
op.products_id AS 'PID',
SUM(op.products_quantity) AS 'sales Q',
SUM(op.final_price * op.products_quantity) AS 'sales $'
FROM orders o
JOIN orders_products op
ON o.orders_id = op.orders_id
JOIN products_description pd
ON op.products_id = pd.products_id
WHERE o.date_purchased
BETWEEN '2012-01-01' and '2012-12-31'
GROUP BY op.products_id
,起初它似乎工作,直到我發現所有的銷售Q和美元銷售額的數字是他們應該是3倍的東西。
它超出了我的掌握能力:)幫助讚賞。
嘗試在group by子句 –
中添加pd.products_name如果產品ID的數字乘以3,我猜這是因爲products_description表包含相同產品ID的3行,不是嗎? – Walid
@Nikita ......奇怪的是,這使服務器崩潰!大聲笑。我嘗試重新啓動並重新執行,同樣的事情......它凍結。 WEIRD – bcsteeve