2013-04-18 1 views
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 

Теперь здесь я могу получить все блюдо и их стоимость на блюдо мудрый, как я их получаю dish_category wise

Как правильно, я не думаю, что ожидается, что пихта е другой запрос от выбранного результата о данном запросе, чтобы получить их dish_category мудрой

ответ

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; 
+0

спасибо, работает отлично – sandeepKumar

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 
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 
Смежные вопросы