2011-10-12 43 views
0

當談到SQL服務器時,我依然很不情願。我知道一些東西,但其他東西似乎仍然很混亂。我知道你越練習越好。那麼我在這個部分工作,有點讓我困惑。它使用的是Northwind數據庫,顯示了從花費超過25,000美元的客戶購買的最近五筆訂單。好吧,我知道我會使用客戶表和訂單表。讓我的大腦瘋狂的是,你如何得到花費25,000美元的5位顧客。我相信我可能知道這一點,但我的想法並不認爲它確實如此。在SQL服務器中使用子查詢

我覺得這個對我來說很難的原因是因爲我有一個OrderID,ProductID,UnitPrice,Quantity和折扣的訂單明細。

那麼你有訂單,它沒有任何與它有關的資金問題的信息。然後,您將知道我需要使用這些客戶來顯示花費超過25,000美元的5位客戶。

隨着訂單明細我不知道如何使用它,因爲它們被分成兩個名稱。由於兩個單詞之間有空格,我可以在它周圍放置一個支架。

我相信人們會投票或者說我在SQL虛擬人看到這一點,但我只是想明白這一點。我知道你看不到我的數據庫,看看我在看什麼,但我也會盡我所能解釋我爲什麼如此困惑。我只是想明白這一點。感謝所有看過這個話題的人。

這是我到目前爲止我知道我缺少添加5在那裏我只是不理解在哪裏。

SELECT ContactName FROM Customers 
    INNER JOIN [Order Details]ON OrderId = 
CustomerID 
INNER JOIN Orders ON Product.ID = Orders.ID 
WHERE UnitPrice >= 25000 
+0

子查詢是一個SQL概念,不僅限於SQL Server。 – Oded

+1

如果您將表格定義添加到帖子中,您可能會得到更好的回覆。無論如何,如果你打開作業,你將需要它們...... – wildplasser

+0

到目前爲止,你嘗試了什麼SQL? – Bernard

回答

0

您需要加入訂單詳情的子查詢,以便獲得訂單總額。

select Top 5 [Customer].ContactName,[Order].OrderDate,detail.total 
from [Customer] inner join 
[Order] on [Customer].CustomerID = [Order].CustomerID inner join 
(SELECT [OrderID],SUM(([UnitPrice]*[Quantity])-[Discount]) as total FROM [OrderDetail] GROUP BY [OrderID]) as detail on [Order].OrderID = detail.OrderID 
WHERE detail.total > 25000 
ORDER BY [Order].OrderDate DESC