Я хочу найти наиболее частый продукт, каждый из которых был продан вместе с продуктом с наибольшим доходом. Я написал несколько примеров, чтобы быть более ясными.Выбирайте наиболее часто используемые значения вместе с суммой
DECLARE @Products TABLE(ID INT, ProductName NVARCHAR(50), Price DECIMAL)
DECLARE @Employees TABLE(ID INT, EmployeeName NVARCHAR(50))
DECLARE @Sales TABLE(ID INT, EmployeeID INT, ProductID INT, Quantity INT)
INSERT INTO @Products VALUES
(1, N'Product1', 300),
(2, N'Product2', 500),
(3, N'Product3', 700),
(4, N'Product4', 800)
INSERT INTO @Employees VALUES
(1, N'Employee1'),
(2, N'Employee2'),
(3, N'Employee3')
INSERT INTO @Sales VALUES
(1,1,2,3),
(2,1,3,4),
(3,1,2,5),
(4,2,2,7),
(5,2,4,3),
(6,3,2,3),
(7,3,2,9),
(8,3,4,8)
соединяемых таблиц выглядит любит это:
Я написал некоторые выбрать
SELECT
e.EmployeeName
,p.ProductName
,SUM(s.Quantity) AS Quantity
,p.ProductName
,SUM(s.Quantity * p.Price) AS Price
FROM @Products p
INNER JOIN @Sales s ON s.ProductID = p.ID
INNER JOIN @Employees e ON s.EmployeeID = e.ID
GROUP BY e.EmployeeName, p.ProductName
ORDER BY SUM(s.Quantity) DESC, SUM(s.Quantity * p.Price)
, который возвращает этот результат, который не является правильным. Обратите внимание, что цена не заказывается.
Я хочу написать в этом формате, выбрать ProductName и сумму количества, ProductName и сумму цены для каждого Employe отдельно.
Ожидаемый результат должен быть
EmployeeName ProductName Quantity ProductName Price
------------ ----------- -------- ----------- ------
Employee3 Product2 12 Product4 6400
Employee1 Product2 8 Product2 4000
Employee3 Product4 8 Product2 6000
Employee2 Product2 7 Product2 3500
Employee1 Product3 4 Product3 2800
Employee2 Product4 3 Product4 2400
Я считаю, что количество и цена упорядочен в соответствии с вашими выберите заявление. Первый заказ по Кол-во убывания, затем закажите по цене по возрастанию. – NickyvV
Пожалуйста, сообщите также о ожидаемом выходе – Susang
@NickyvV да, но цена не заказывается по возрастанию в любом случае – www1986