2010-09-01 35 views
1

有詢問是詢問每個客戶購買的最喜歡的產品。我必須選擇,並在第一選擇我已經選擇了每個客戶購買的產品數量。在另一個選擇中,我想爲每個客戶選擇最大的boughts。但是當我想選擇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) **提到,部分是給出了錯誤的部分,它說的對象客戶是沒有定義。有沒有辦法解決它沒有看法?爲什麼這樣呢?因爲我定義的客戶不是桌子?

+0

什麼是您的RDBMS? – 2010-09-01 08:42:18

+0

正如我在標籤中提到的那樣,它是Microsoft SQL Server 2008. – user435245 2010-09-01 09:11:37

回答

2

這裏是你想要的東西:

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) 
+0

此代碼不起作用,因爲此錯誤: 子查詢返回的值超過1。當子查詢遵循=,!=,<, <= , >,> =或當子查詢用作表達式時,這是不允許的。 – user435245 2010-09-01 09:10:37

+0

請注意,我需要爲每個個人最大限度地購買。例如下面的東西*用戶1產品1 30次購買*用戶1產品2 30次購買*用戶2產品2 20次購買*在這種情況下,我們會知道每個客戶都有什麼最喜歡的產品。 – user435245 2010-09-01 09:30:38

+0

您是否嘗試過或僅僅是您的想法? – 2010-09-01 09:32:48

相關問題