Работа с подзапросами в SQL-сервере - PullRequest
0 голосов
/ 12 октября 2011

Я все еще новичок, когда дело доходит до сервера SQL.Я знаю кое-что, но другие все еще кажутся такими запутанными.Я знаю, чем больше вы практикуетесь с этим, тем лучше становитесь.Ну, я работаю над этой частью, которая, похоже, запутала мой разум.Он использует базу данных Northwind и показывает последние пять заказов, которые были приобретены у клиента, который потратил более 25 000 долларов.Хорошо, я знаю, что буду использовать таблицу клиентов и таблицу заказов.Что сводит меня с ума, так это то, как вы получаете это, когда 5 клиентов потратили 25000.Я уверен, что, вероятно, знаю это, но мой разум не думает, что это так.

Причина, по которой я думаю, что это трудно для меня, заключается в том, что у меня есть деталь заказа, которая имеет OrderID, ProductID, UnitPrice, Количествои скидки в нем.

тогда у вас есть Заказы, которые не имеют никакой информации, касающейся эмиссии денег.Тогда у вас есть клиенты, которых, я знаю, мне нужно будет использовать, чтобы показать 5 клиентов, которые потратили более 25 000.

С подробным описанием заказа, я не знаю, как правильно его использовать, потому что они разделенына два имени.Я задаюсь вопросом, могу ли я поставить вокруг него квадратную скобку, так как между двумя словами есть пробел.

Я уверен, что люди собираются проголосовать за это или сказать, что я видел это на манекенах SQL, но я просто пытаюсьпонимаю это.Я знаю, что вы не можете видеть мою базу данных, чтобы увидеть то, на что я смотрю, но я также постараюсь объяснить, почему я так растерялся.Я просто пытаюсь понять это.Спасибо всем, кто заглянул в эту тему.

Это то, что у меня есть, я знаю, что мне не хватает, чтобы добавить туда 5, я просто не понимаю, где тоже.

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

1 Ответ

0 голосов
/ 12 октября 2011

Вам необходимо присоединиться к подзапросу из деталей заказа, чтобы вы могли получить сумму заказа.

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
...