1

ここでのクエリで何が間違っているのか理解できません。

SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL 
    FROM ORDERITEMS 
    WHERE TOTAL > 39.9 
    GROUP BY ORDER# 
    ORDER BY TOTAL DESC; 

これは私が得続けるエラーです:

"TOTAL": invalid identifier
4

3 に答える 3

5

HAVING集計関数に述語が必要なため、句を使用できます

SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL 
  FROM ORDERITEMS 
 GROUP BY ORDER# 
HAVING SUM(PAIDEACH * QUANTITY) > 39.9
 ORDER BY TOTAL DESC; 
于 2012-06-29T02:39:06.147 に答える
2

句でエイリアスを使用する場合は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;
于 2012-06-29T01:13:39.707 に答える
0

order by 2 desc(列への数値参照は1で始まります)

ネストされたクエリを記述havingしたり、クエリに句を追加したりする必要はありません。数字で列を参照するだけですが、クエリを変更するときに変更することを忘れないでください;-)

于 2012-06-29T05:50:26.090 に答える