0

我需要什么:我想按菜品类别显示销售额

我有三个表来解决这个问题:

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

现在在这里我可以按菜式获得所有菜式及其总价,如何获得菜式明智的菜式

没错,我不知道会在有关此查询的选定结果上触发另一个查询,以使它们变得明智

4

3 回答 3

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
于 2013-04-18T06:47:18.923 回答
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;
于 2013-04-18T06:52:09.133 回答
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
于 2013-04-18T06:45:50.387 回答