2

Microsoft Access で次のクエリを実行しようとしています。

SELECT Weights.Group, Abs(Wt-(Select avg(Wt) from Weights w2 where Weights.Group = w2.Group)) AS Rank
FROM Weights
WHERE (((Weights.[Selected])=1))
ORDER BY Abs(Wt-(Select avg(Wt) from Weights w2 where Weights.Group = w2.Group));

次の表に対して

ID  Wt  Selected    Group
1   911 1   1
2   912 1   1
3   913 0   1
4   914 1   1
5   880 1   2
6   890 1   2
7   885 1   2
8   886 1   2

クエリを実行すると、無効な構文エラーが発生します。Order By句で列2を参照しようとすると、列2ではなくリテラル2で注文されているように見えます。この問題の経験はありますか?

4

1 に答える 1

3

ラップする必要があると思います:

SELECT * FROM (
    SELECT 
       Weights.Group, 
       Abs([Wt]-
         (Select avg(Wt) from Weights w2 where Weights.Group = w2.Group)) AS Rank
    FROM Weights
    WHERE Weights.Selected=1)
ORDER BY Rank
于 2013-03-20T17:32:32.860 に答える