2013-06-28 3 views
0

У меня есть следующие таблицы:MySQL Query - группа или добавить объем производства на единицу, когда устройство может производить два разных продукта

widget (id, widget) 
product(id, product, widget(fk)) 
production(id, date, widget(fk) units_made) 

Каждый виджет может производить 1 или более видов продукции.

У меня возникли проблемы с созданием запроса, чтобы показать мне продукцию TOTAL для виджета. Поэтому, если виджет A создает продукты X и Y, я хочу увидеть общее производство X и Y для виджета A с точки зрения сделанных единиц.

Ниже приведен пример данных, которые я сейчас вижу в моей рабочей таблице.

Date/Widget/Product/Units_Made 
1-1-13/A/X/15 
1-2-13/A/Y/30 
1-3-13/A/X/8 
1-1-13/A/Y/150 
1-2-13/A/X/48 
1-3-13/A/Y/7 

Как я могу сгруппировать даты, чтобы я мог видеть общее производство для виджета A?

+0

http://dev.mysql.com/doc/refman/5.0/ru/group-by-functions.html#function_sum – Achrome

ответ

0

Это то, что вы хотите? Это будет группировать даты, виджеты и продукты независимо от категории. Вы можете дополнительно ограничить запрос, добавив HAVING, который похож на WHERE, за исключением того, что он применяется к группам (WHERE применяется до GROUP BY).

http://sqlfiddle.com/#!2/055d2/2

SELECT 
    Production.date, Widget.widget, Product.product, SUM(Production.units_made) 
FROM 
    ((Widget JOIN Production ON Widget.id = Production.widget) JOIN 
    Product ON Production.product_id = Product.id) 
GROUP BY 
    Widget.widget, Product.product, Production.date 

(см SQLFiddle для образца).