2017-05-03 17 views
-1

誰かが私がこのSQLで間違っているとわかるよう助けてくれる人がいれば偉大になるだろう。私の下でそれに答える試みを見てください。どのように答えるべきだと答えていますか?以下の試験のアドバイスでは、SUM機能を使うべきだと私は非常に混乱しています。私はこれをgoogledと私はこの場合、2つの値の積を得る必要がある場合、SUM関数がここでどのように役立つことができるかわかりません。それとも、私は何か大きなものを欠いていますか2つの異なるテーブルから2つの値の積を得る

質問:TotalValueは、各注文の合計金額(金額)を表す派生データを含むOrderリレーションの列です。この列の値を計算するSQL SELECT文を作成します。

私の答え:試験紙から

SELECT Product.ProductPrice * OrderLine.QuantityOrdered AS Total_Value 
FROM Product, 
    OrderLine 
GROUP BY Product; 

アドバイス: This is a straightforward question. Tip: you need to use the SUM function. Also, note that you can take the sum of various records set using the GROUP BY clause.

+2

こんにちは、あなたが聞いたことがあるかもしれないが、Stack Overflowは無料のコード作成サービスではありません。典型的には、能動的な問題を伴う努力を示す質問だけがここで援助を得る。それは言われている、あなたはまだ何かを試してみましたか? –

+0

@Tim Biegeleisen彼女は答えを含めた。 – Eggsalad

+0

@Eggsaladいいえ、それはいくつかのテーブルデータへのリンクです。どこにでもクエリには署名がありません。ちなみに、私は卵のサラダを食べるのが好きで、数日前に昼食のために実際にそれを持っていました:-) –

答えて

0

私はハイパーリンク(青いテキスト)をクリックした後、[OK]を、あなたの質問がたくさん明確になりました。

各注文は、1つ以上の製品の数量で構成されます。 したがって、3つの製品Aと5つの製品Bがある可能性があります。

したがって、あなたは価格*数量である各製品の合計を取得する必要があります。

例に:

3 * ProductA Price (e.g. €5) = 15 
5 * ProductB Price (e.g. €4) = 20 

合計値= 35

だから、製品、注文とオーダーラインテーブルを使用する必要があります。 (私はそれをテストしていない)のような

何か:

SELECT SUM(Product.ProductPrice * OrderLine.QuantityOrdered) FROM Product, Order, OrderLine 
WHERE Order.OrderID = OrderLine.OrderID 
AND Product.ProductID = OrerLine.ProductID 
GROUP BY Order.OrderID 

これは注文ごとにtotalvalueをを含む行を返す必要があります - GROUP BY句は、各グループを超える合計にSUMの原因 - 全体ではなく行。

単一注文の場合は、(GROUP BYの前に)「AND Order.OrderID = XXXXX」を追加する必要があります。ここで、XXXXXは実際の注文OrderIdです。

+0

ありがとうございます。 –

+0

ちなみに、ORDER BY句との混乱を招く可能性があるため、Orderというテーブルを持たないようにすることをお勧めします(ORDERはSQLの予約語であるため、 – jonathanmcc

関連する問題