[编辑]我被告知查询中有一个子查询,所以这里是我想出了而现在给努力。[NEW CODE]编辑:ORA-00936:缺少表达式编辑[ORA-00933:SQL命令未正确结束]
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的情况。我想尝试做这项工作,但是如果有其他方法可以做到这一点,欢迎所有建议。
我还有另一种方式做它,但它给了我3和15的结果而不是1和5,我会在这里把任何人都可以解决这个问题。
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
的'WHERE'需要去* *前的'组by' – 2014-09-28 09:52:46