私は3つのテーブルを持っています。このSQLクエリを簡略化することはできますか?
'Order details' OrderID | Quantity | UnitPrice | ProductID 1002 | 19 | 17 | 824 1003 | 5 | 15 | 285 1004 | 7 | 6 | 543
'Orders' OrderID | CustomerID 1002 | 224 1003 | 224 1004 | 348
'Customers' CustomerID| Name | Phone 224 | John | 235-453 225 | July | 532-232
私はこれをしなかった以下17以上の平均価格で10社の以上の製品を注文した人についての情報を取得する必要がありますが、私はわかりませんもしそれが最良のアプローチであれば。
SELECT *
FROM customers
WHERE customerid IN
(SELECT DISTINCT customerid
FROM orders
WHERE orderid IN
(SELECT orderid id
FROM 'order details'
WHERE 17 >
(SELECT avg(unitprice)
FROM 'order details'
WHERE orderid = id
GROUP BY orderid)
AND 10 <
(SELECT sum(quantity)
FROM 'order details'
WHERE orderid = id
GROUP BY orderid)
GROUP BY orderid))
"10個以上の製品が注文されました"というのは、1つの注文またはすべての注文を意味しますか? –
@CL。すべての注文に対して –
平均価格が17未満の10以上の商品はどういう意味ですか?最終的に10以上の製品を選択すると、平均が17未満になりますか?または、「10以上の商品を注文した**、**注文したすべての商品が平均が17未満」という意味ですか? –