Общий объем продаж за месяц SQL Server Management Studio - PullRequest
4 голосов
/ 18 мая 2019

Не знаю, переусердствовал ли я с нормализацией, но есть 4 таблицы:

  • Сотрудник (удостоверение личности, имя)
  • Продукт (ID, имя, цена)
  • Order_Details (ID, Employee_ID {FK}, Месяц, Год) - время покупки и какой сотрудник совершил продажу
  • Order_Each_Product (OrderID {PK, FK}, ProductID {PK, FK}, количество) - какой продукт был приобретен и сколько было приобретено каждого продукта

Я хочу что-то вроде этого:

( Employee_Name, Month, Total_Sales_Made_In_That_Month_In_Dollar )

Я думаю, что вы можете получить сумму каждого заказа из 2 таблиц с чем-то вроде:

SELECT SUM((Order_Each_Product.Quantity) * (Product.Price)) 
FROM Order_Each_Product 
INNER JOIN Product ON Order_Each_Product.ProductID = Product.ProductID
GROUP BY OrderID

Но как вы снова группируете это по Сотруднику и получаете СУММУ СУММЫ?

Ответы [ 2 ]

2 голосов
/ 18 мая 2019

Форпас побил меня, пока я писал код!

SELECT
    Employee.Name, Year, Month, SUM(Quantity * Price) AS Total_Sales_In_Month
FROM 
    Order_Details

LEFT JOIN Employee
    ON (Order_Details.Employee_ID = Employee.ID)

LEFT JOIN Order_Each_Product
    ON (Order_Details.ID = Order_Each_Product.OrderID)

LEFT JOIN Product
    ON (Order_Each_Product.ProductID = Product.ID)

GROUP BY
    Employee.ID, Employee.Name, Year, Month

Еще один совет: то, что вы в настоящее время называете Order_Details и Order_Each_Product, обычно называются order_headers и order_lines соответственно.

1 голос
/ 18 мая 2019

Объединить все таблицы и группы по ID сотрудника, имени, году и месяцу:

select
  e.name,
  od.Year,
  od.Month,
  sum(oep.quantity * p.price) Total_Sales_Made_In_That_Month_In_Dollar
from employee e 
inner join order_details od on od.employee_id = e.id
inner join order_each_product oep on oep.orderid = od.id
inner join product p on p.id = oep.productid
group by e.id, e.name, od.Year, od.Month
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...