[編集]クエリにサブクエリが含まれていると言われたので、ここに私が思いついたものと今取り組むべきものがあります.[新しいコード]
SELECT P.prodid, P.prodname, SUM(O.qtysold) AS "TOTAL SALES"
FROM ORDERLINE O
INNER JOIN PRODUCT P
ON O.prodid = P.prodid
INNER JOIN ALLOCATION A
ON P.prodid = A.prodid
GROUP BY P.prodid, P.prodname
HAVING (SELECT AVG(score) AS score
FROM QUALITYCHECK
HAVING score >= 2)
ORDER BY 3 ASC;
[元の投稿] それで、正しい結果が得られるように、このコードをさまざまな方法で実行しようと試みてきました。これが機能する場合、これが私の最も正確なものだと思います:
SELECT P.prodid, P.prodname, SUM(O.qtysold) AS "TOTAL SALES"
FROM ORDERLINE O
INNER JOIN PRODUCT P
ON O.prodid = P.prodid
INNER JOIN ALLOCATION A
ON P.prodid = A.prodid
GROUP BY P.prodid, P.prodname
WHERE (SELECT AVG(score) FROM QUALITYCHECK) >= 2
ORDER BY 3 ASC;
~エラーは8行目~
それでは、私が達成しようとしていることを説明しましょう。Orderline テーブルから販売された製品の数量を取得しようとしていますが、製品の品質チェック スコアの平均が 2 より大きい場合のみです。これを機能させたいのですが、別の方法があれば、すべての提案を歓迎します。
別の方法もありますが、SUM の結果が 1 と 5 ではなく 3 と 15 になっています。
SELECT P.prodid, P.prodname, SUM(O.qtysold) AS "TOTAL SALES"
FROM ORDERLINE O
INNER JOIN PRODUCT P
ON O.prodid = P.prodid
INNER JOIN ALLOCATION A
ON P.prodid = A.prodid
INNER JOIN QUALITYCHECK Q
ON A.prodid = Q.prodid
GROUP BY P.prodid, P.prodname
HAVING AVG(Q.score) >= 2
ORDER BY 3 ASC;
前もって感謝します:D