0

SQLサーバーに関しては、私はまだ初心者です。私は何かを知っていますが、他のものはまだとても混乱しているようです。練習すればするほど上手くなります。さて、私はちょっと私の心が混乱しているこの部分に取り組んでいます。ノースウィンドデータベースを使用しており、25,000ドル以上を費やした顧客から購入した最新の5つの注文を示しています。わかりました。customerテーブルとorderテーブルを使用します。私の頭を悩ませているのは、25,000を費やした5人の顧客がどこでそれを手に入れるのかということです。私はおそらくそれを知っていると確信していますが、私の心はそれを知っているとは思っていません。

これが難しいと思う理由は、OrderID、ProductID、UnitPrice、Quantity、および割引が含まれている注文の詳細があるためです。

次に、お金の問題を扱う情報がない注文があります。次に、25,000以上を費やした5人の顧客を表示するためにそれを使用する必要があると私が知っている顧客がいます。

注文の詳細では、2つの名前に分かれているため、どのように使用すればよいかわかりません。2つの単語の間にスペースがあるので、かっこを付けてもいいですか。

人々はこれに反対票を投じるか、SQLダミーでこれを見たと言うでしょうが、私はこれを理解しようとしています。私のデータベースを見て私が見ているものを見ることができないことは知っていますが、私がなぜそんなに混乱しているのかを説明するために最善を尽くします。私はこれを理解しようとしています。このトピックを見てくれたすべての人に感謝します。

これは私が今のところ持っているものであり、そこに5を追加するのが欠けていることを私は知っていますが、どこにも理解していません。

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

1 に答える 1

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
于 2011-10-12T15:28:00.403 に答える