2013-08-09 17 views
0

У меня есть следующая конфигурация:Как рассчитать количество продуктов (которые составляют напитки) при продаже напитков?

#purchases 
id 
date 
supplier_id 

#purchase_line 
product_id 
purchase_id 
quantity 
price 

#products 
id 
name 
description 
measure 

#recipe 
product_id 
beverage_id 
quantity 

#beverage 
id 
description 
method 

#sale_line 
beverage_id 
sale_id 
quantity 
price 

#sales 
id 
date 

В основном, продажа имеет много напитков и каждый напиток производится по определенному количеству продуктов. Итак, каков наилучший способ расчета количества продуктов в каждой продаже?

Это часть управления запасами, где мне придется сравнивать продажи (с точки зрения продуктов, а не напитков) для покупок.

enter image description here

+0

Вы ищете запрос, который будет расщеплять покупку на составляющие продукции? – Lisa

+0

мой вопрос больше связан с решением по созданию базы данных. Мне нужно, чтобы акции были доступны для каждого продукта. Я думаю, что я мог бы расширить запрос, чтобы присоединиться к 'purchase_line pl', а затем вычислить разницу' SUM (pl.qty) - qty_sold'. Но мне было интересно, есть ли у него лучший подход. – gabrielhilal

+0

Вот как бы я это сделал. – Lisa

ответ

0

Является ли это по линии того, что вы ищете? Если нет, разместите дополнительную информацию. Следующий запрос объединяет таблицы продаж, продаж, напитков, рецептов и продуктов, а затем вычисляет количество проданных товаров в зависимости от количества проданных напитков и количества в рецепте. Я не проверял это. Вы можете добавить предложение WHERE для ограничения по дате, продукту и т. Д. По желанию.

КОЛИЧЕСТВО ПРОДАНО:

SELECT pr.prod_id 
    , pr.prod_name 
    , SUM(sl.qty*rc.qty) AS qty_sold 
FROM sales sa JOIN sales_line sl ON sa.sales_id = sl.sales_line_id 
       JOIN beverage bv ON sl.bev_id = bv.bev_id 
       JOIN recipe rc  ON bv.bev_id = rc.bev_id 
       JOIN products pr ON rc.prod_id = pr.prod_id 
WHERE ... 
GROUP BY pr.prod_id 
    , pr.prod_name 

КОЛИЧЕСТВА ПРИОБРЕТЕННОЕ:

+2

Возможно, вам понадобится 'SUM (sl.qty * rc.qty)' и 'GROUP BY pr.prod_id , pr.prod_name' здесь. – wildplasser

+0

Неплохая идея. Я добавлю их. – Lisa

Смежные вопросы