Как использовать функцию Max для другого столбца из выбора

Существует запрос, который запрашивает любимые продукты, которые покупает каждый клиент. Я должен выбрать, и при первом выборе я выбрал количество продуктов, которые купил каждый клиент. в другом выберите, я хочу выбрать максимум этих групп для каждого клиента. Но когда я хочу выбрать максимум (предыдущий столбец выбора), он получает ошибку и говорит, что она не определена, может кто-нибудь помочь мне, как решить эту проблему. Я очень мотивирован, чтобы решить проблему таким способом, и я не желаю использовать другие методы, такие как создание представления или что-то подобное. Может ли кто-нибудь помочь мне в этом:

SELECT INN.Maximum,INN.Name, customer.ProductName from
(SELECT ContactName, ProductName, COUNT([Order Details].Quantity) AS NumOftimeCustomer
FROM Orders, [Order Details], Products, Customers
WHERE [Order Details].OrderID = Orders.OrderID
AND [Order Details].ProductID = Products.ProductID
AND Orders.CustomerID = Customers.CustomerID
GROUP BY ContactName, ProductName)customer
INNER JOIN
(SELECT Customers.ContactName AS Name, **MAX(customer.numOftimecustomer)** AS Maximum 
from    Customers, customer 
GROUP BY Customers.ContactName) INN
ON INN.Name = customer.ContactName AND INN.Maximum = customer.NumOftimeCustomer

та часть, которая упоминается с MAX (customer.numOftimecustomer) **, это та часть, которая выдает ошибку и говорит, что клиент объекта не определен. есть ли способ решить это без просмотра? почему так? так как клиент, которого я определил, не является таблицей?

1
задан Peter Lang 1 September 2010 в 10:42
поделиться

1 ответ

вот что вам нужно:

select 
    *
 from  (SELECT ContactName, ProductName, COUNT([Order Details].Quantity) AS NumOftimeCustomer
    FROM Orders, [Order Details], Products, Customers
    WHERE [Order Details].OrderID = Orders.OrderID
    AND [Order Details].ProductID = Products.ProductID
    AND Orders.CustomerID = Customers.CustomerID
    GROUP BY ContactName, ProductName)customer
where customer.num = (select max(num) from

(SELECT ContactName, ProductName, COUNT([Order Details].Quantity) AS NumOftimeCustomer
    FROM Orders, [Order Details], Products, Customers
    WHERE [Order Details].OrderID = Orders.OrderID
    AND [Order Details].ProductID = Products.ProductID
    AND Orders.CustomerID = Customers.CustomerID
    GROUP BY ContactName, ProductName)customer2
 where customer2.name = customer.name)
2
ответ дан 2 September 2019 в 21:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: