Строка количества заказа сумма итоговый расчет SQL - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть заказ:

Order table

У меня есть OrderLine:

OrderLine table

Я хочу показать, какой продукт был продан больше всего.

Я хочу суммировать каждое количество в строке заказа, где оно относится к заказу со статусом «завершен»

Глядя на данные, мы видим, что только orderID = 3 имеет orderstatus = Completed, поэтому нам нужно только OrderLine для OrderID = 3 - то есть OrderLineID = 6 и OrderLineID = 7.

Таким образом, наш ожидаемый результат будет ProductID 1 с Quantity 11 следующим образом:

ProductID | OrderLineQuantity

------- 1 ----- | ---------- 11 -----------

Мой код до сих пор выдает ошибку:

Столбец «OrderLine.ProductID» недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Мой код:

SELECT OrderLine.ProductID, SUM(OrderLineQuantity)FROM OrderLine Inner Join [Order] ON OrderLine.OrderID = [Order].OrderID  WHERE OrderStatus = 'Completed'

1 Ответ

3 голосов
/ 03 апреля 2019

Вам нужно GROUP BY, чтобы исправить проблему синтаксиса, а затем что-то еще, чтобы получить лучший продукт:

SELECT TOP (1) ol.ProductID, SUM(ol.OrderLineQuantity)
FROM OrderLine ol Inner Join
     [Order] o
      ON ol.OrderID = o.OrderID
WHERE o.OrderStatus = 'Completed'
GROUP BY ol.ProductID
ORDER BY SUM(ol.OrderLineQuantity) DESC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...