2016-11-26 11 views
0

私はデータベースに初心者です。私は、次の表SQL結合クエリでスタックする

Customer (customer_id, customer_name, city) 
Order (order_id, order_date, customer_id) 
Order_Item (order_id, item_id, quantity) 
Item (item_id, unit_price) 
Shipment (order_id, warehouse_id, ship_date) 
Warehouse (warehouse_id, warehouse_name, warehouse_city) 

を持っている必要なクエリは、次のとおりです。

  • は項目と各注文の合計金額の数を取得するために、SQLクエリを記述します。
  • 名前が "FridaHouse"の倉庫から出荷された注文の合計金額を取得するSQLクエリを作成します。

は、これが最初のクエリのための私の試みですが、確かにそれは同じORDER_IDですべての行を集計するSQLを言って、あなたがGROUP_BY句が欠落している

SELECT item.item_id, SUM(item.unit_price * order_item.quantity) AS TOTAL_PRICE 
FROM order_item JOIN item on item.item_id=order_item.item_id; 
+0

受信したエラーは何ですか? 2番目のクエリで何を試しましたか? – EGOrecords

+0

要件を正しく読んでください: "アイテム数と各注文の合計価格を取得するSQLクエリを作成します"。表示する1つのオーダーごとに1つの行があり、各行にはアイテム数と合計価格が含まれています。 item_idを選択する意味がありません。あなたはアイテムテーブルに参加しています。興味があるものは何を含んでいますか? –

答えて

0

を動作しません。また、アイテムのIDではなく、アイテムのIDを返す必要があります(順序が異なるため、SQLは返されるアイテムを知ることができません)。マイナスの可能なタイプミスは、最初のクエリは次のようになります。

select 
    order_id, 
    sum(quantity) as quantity, 
    sum(unit_price*quantity) as total_price 
from order_item join item on item.item_id = order_item.item_id 
group by order_id 

これは今までに注文が少なくとも一つの項目が含まれていることを前提として - あなたは、空の注文に応じる注文から選択し、左の外側を実行したい場合に参加上記のサブクエリ