我不明白我在做什么我的问题在这里。我该如何解决我的Oracle 11G SQL查询问题?
SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL
FROM ORDERITEMS
WHERE TOTAL > 39.9
GROUP BY ORDER#
ORDER BY TOTAL DESC;
这是我不断收到错误:
"TOTAL": invalid identifier
我不明白我在做什么我的问题在这里。我该如何解决我的Oracle 11G SQL查询问题?
SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL
FROM ORDERITEMS
WHERE TOTAL > 39.9
GROUP BY ORDER#
ORDER BY TOTAL DESC;
这是我不断收到错误:
"TOTAL": invalid identifier
既然你想对你的聚合函数有一个谓词,你可以使用HAVING
子句
SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL
FROM ORDERITEMS
GROUP BY ORDER#
HAVING SUM(PAIDEACH * QUANTITY) > 39.9
ORDER BY TOTAL DESC;
如果你想使用别名在WHERE
条款,那么你可以把另一个SELECT
内查询:
SELECT *
FROM
(
SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL
FROM ORDERITEMS
GROUP BY ORDER#
) x
WHERE x.TOTAL > 39.9
ORDER BY x.TOTAL DESC;
order by 2 desc
(以列数字的引用从1开始)
有没有必要写嵌套查询,甚至把一个having
子句查询。请参阅带数字的列,但不要忘记在更改查询时更改它;-)
错误来自'where',而不是'order by';列别名在那里有效。 –
时间让我学会再读一次...... – ipip