标题混乱?:)
我正在尝试从我的购物车数据库中生成有用的报告。
有一个表orders
包含“date_ordered”(以及一堆我不关心的其他东西)和一个键“orders_id”
第二个表orders_products
具有相同的“orders_id”键并包含有关订购内容的信息。特别是,我对“products_id”、“products_quantity”和“final_price”感兴趣
我想要做的是生成一个销售报告,显示数量*价格的总和,并在 date_ordered 介于两个日期之间时按 products_id 分组。我可以这样做:
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_description
在“products_name”列中。所以我尝试了这个:
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 倍。
它超出了我的掌握能力:) 帮助表示赞赏。