У меня возникли проблемы с MySQL у меня есть SQL-оператор, который выглядит следующим образом:результаты SQL заявление имеют множитель для первых трех строк
Select Products.ProductID, Products.ModelNumber, Products.SerialNumber, Products.Description, Products.ListPrice,
Sum(OrderDetails.Quantity) AS QuantityOrdered, Sum(Inventory.Quantity) AS QuantityOnHand
From Products
LEFT JOIN OrderDetails USING(ProductID)
LEFT JOIN Inventory USING(ProductID)
group by Products.ProductID, Products.ModelNumber, Products.SerialNumber, Products.Description, Products.ListPrice;
SQL-оператор работает отлично, за исключением первых трех строк, возвращаются, имеют множитель в столбце Sum(OrderDetails.Quantity) AS QuantityOrdered
. Первая строка имеет множитель из 4, второй имеет множитель из 3, а третья строка имеет один из 2. Каждая другая строка просто отлично, а столбец Sum(Inventory.Quantity) AS QuantityOnHand
возвращает правильные номера, без множителя.
Я отредактировал значения в таблице OrderDetails
, которые относятся к ProdcutID
, которые соответствуют первым трем рядам. Я изменил количество до 1 для каждого из них, и я получаю 4, 3 и 2 соответственно.
Можете ли вы показать некоторые выборочные данные и ожидаемые результаты? – AKS
У вас есть несколько строк через 'LEFT JOIN', я бы сделал ставку. – dkarp
Вы создаете кросс-продукт между тремя таблицами. Поэтому он умножает 'OrderDetails.Quantity' на число строк' Inventory', которые имеют этот 'ProductID'. – Barmar