MS Access Tips/Sample and VBA and Blog customize etc...

SQLでフィールドの別名で並べ替えできない

SQLで複雑な演算フィールドに別名をつけていて、その別名をORDER BY句に指定すると、
パラメータを聞かれます。(VBAでレコードセットを開こうとするとエラーになる。)

SELEC Fld1, Fld2, Fld3, Fld1 * Fld2 + Fld3 As 別名
FROM Tbl1
ORDER BY 別名 DESC;

この場合、「別名」パラメータが開き、適当に入力すると希望の並び順になりません。

SQLでフィールドの別名で並べ替えできない タイトル

難易度:

クエリのデザインビューで作成

クエリのデザインビューで演算フィールドに並べ替えを指定して、SQLビューにすると、下記のようになります。

これだと、希望通りに並べ替えられます。

ORDER BY には、別名は使用できないという仕様です。

サブクエリを利用

シンプルな式なら上記の方法でいいのですが、複雑で長い式の場合、同じものを2回記述するのは、ちょっと悔しいですね。

下記のようにサブクエリを利用すれば別名で並べ替えを指定できます。

列番号で並べ替えを指定

サブクエリにすると更新できないクエリになります。
もっとシンプルで、かつ、更新できるクエリにする方法があります。

表示されているフィールドの4列目で並べ替えを指定するという意味なります。


拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/435-3ad4f711
該当の記事は見つかりませんでした。