2011-10-12 2 views
0

SQL 서버에 관해서는 여전히 noobie입니다. 나는 뭔가를 알고 있지만 다른 사람들은 여전히 ​​혼란스러워 보입니다. 나는 당신이 더 잘할수록 더 연습 할 수 있다는 것을 안다. 나는이 부분에 대해서 일하고있다. 내 마음이 혼란 스럽다. 그것은 northwind 데이터베이스를 사용하여 $ 25,000 이상을 지출 한 고객으로부터 구입 한 가장 최근의 다섯 가지 주문을 보여줍니다. 알았어. 고객 표와 주문 표를 사용할거야. 내 마음을 미친 것은 25,000 달러를 소비 한 5 명의 고객을 어떻게 확보 할 수 있는가입니다. 나는 아마 그것을 알고있을 것이라고 확신하지만 내 마음은 생각하지 않습니다.SQL 서버에서 서브 쿼리 작업

나는 이것이 내게 힘들다고 생각하는 이유는 OrderID, ProductID, UnitPrice, Quantity 및 할인이있는 주문 세부 정보가 있기 때문입니다.

돈 문제를 다루는 정보가없는 주문이 있습니다. 그러면 25,000 명 이상을 소비 한 5 명의 고객을 표시하는 데 사용해야 할 고객이 있습니다.

주문 세부 정보 두 가지 이름으로 나뉘어 잘 사용하는 방법을 잘 모릅니다. 나는 두 단어 사이에 공백이 있기 때문에 주위에 괄호를 붙일 수 있습니까?

저는 사람들이이 문서를 투표하거나 SQL dummies에서 본 것처럼 말 하겠지만, 저는 이것을 이해하려고 노력하고 있습니다. 내가 뭘보고 있는지 당신이 내 데이터베이스를 볼 수 없다는 것을 알고 있지만, 왜 내가 혼란스러워 하는지를 설명하기 위해 최선을 다할 것입니다. 나는 이것을 이해하려고 노력하고있다. 이 주제를 보았던 모든 분들께 감사드립니다.

이것은 내가 지금까지 내가 거기에서 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 Server에 국한되지 않고 SQL 개념입니다. – 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