我需要什么:我想按菜类显示销售额
我有三个表来解决这个问题:
1.order(dish_id,dish_price,dish_quantity)
2.dish(dish_id,dish_name,dish_cat_id)
3.dish_category(dish_cat_id,dis_cat_name
我想要的结果是: 我想要显示报告,已售出的数量,菜品类别以及总价格,total_quantity
预期的结果: dish_cat_id,dish_cat_name,total_price,total_quantity_sold
我的尝试:
SELECT d.dish_name,
d.dish_id,
SUM(o.price) as total_price,
SUM(o.dish_quantity) as total_qauntity
FROM order as o , dish as d
WHERE o.dish_id = d.dish_id
GROUP BY o.dish_id
现在我可以通过菜肴明智地获得所有菜肴及其总价格,如何获得它们 dish_category 明智
正确的是,我不知道预计会针对此查询的选定结果触发另一个查询,以便明智地将它们变为dish_category
答案 0 :(得分:2)
SELECT c.dis_cat_name , c.dish_cat_id ,
SUM(o.price) as total_price ,
SUM(o.dish_quantity) as total_qauntity
FROM order as o JOIN dish as d
ON (o.dish_id = d.dish_id)
join dish_category c on (d.dish_cat_id=c.dish_cat_id)
GROUP BY d.dish_cat_id
答案 1 :(得分:2)
SELECT dc.dis_cat_name,
SUM(o.price) as total_price,
SUM(o.dish_quantity) as total_quantity
FROM order o
INNER JOIN dish d ON o.dish_id = d.dish_id
INNER JOIN dish_category dc ON dc.dish_cat_id = d.dish_cat_id
GROUP BY dc.dish_cat_id;
答案 2 :(得分:1)
你必须加入所有3个表:
select d2.dish_cat_id, d2.dish_cat_name,
sum(o1.dish_price) total_price ,sum(o1.dish_quantity) total_quantity_sold
from dish d1 join dish_category d2 on (d1.dish_cat_id= d2.dish_cat_id)
join order o1 on (d1.dish_id = o1.dish_id)
group by d2.dish_cat_id, d2.dish_cat_name