SQL-ORDER BYとSELECT INTO~ソートがおかしい~
どうも
最近なんでも自動化がしたくて、上司になんでも自動化すればいいってもんじゃない。
と言われてしまいましたyukiです。
定例作業なんか、毎回考えながら手順書に沿ってまったーく同じことをやるって、
すごい非効率だと感じちゃうんですよね。
毎日3時間かけていた作業を15分に短縮して仕事を楽しんだりしてます。
ソートがおかしい
色んな自動化をしている中でExcelVBAにて、Accessにデータをインポートしてエクスポートする処理を行っているマクロがあったんですが、
「なんかデータの並びが(ソートが)おかしいよ」
とご指摘いただきました。
んーなんだ?ちゃんとSQLでORDER BYしてるから、ソートは間違えないと思うんだけどな。。。
一通り、マクロの中身を読んでみて特におかしなところを見つけられないし、
あるタイミングからデータのソートがうまくいってないようでした。
どこでもソートされていないんだけど、どこかソートがされた後に、ちょっといじった感があったんですよね。
原因
まずは、原因を見つけるため、途中結果を一つずつ確認していきました。
するとSQLで、テーブルにINTOしているんですが、そのテーブルを見ると既にソートされてなかったんですよね。
なんじゃこりゃと色々調べれみるとこんなページを見つけちゃいました。
挿入、または SELECT INTO を使用すると、アイデンティティ関数の動作。ORDER BY 句を含むクエリを選択します。
なんて、書いてあったかというと簡単に言えば
ORDER BYとSELECT INTOは共存できないよ
ってことらしいです。動作の保証をしていないみたいな感じでしたが。
なんだ、、、Accessの仕様か・・・
更に調べてみるとどうもAccessだけの仕様ではなく、RDBに共通していることみたいです。
私の勉強不足でした。はい。
終わりに
さくっと、Excelでソートするように変更して解決でしたよ。
作ったときはうまくいってたんだけど、使ってたパソコンのスペックが低かったから、逆にうまくいってたのかな?w
そんなこんなで、なんでも自動化すればいいってものじゃないらしいです。
私は、決してそんなことはないと思ってます。コンピュータでできる作業はパソコンにやらせようよ。
単純な作業をするために就職したわけではないですからね。
もっと勉強して、詳しくなっていかなきゃなと感じた出来事でした。
今回みたいに、ミスるかも知れないけど、引き続き定例作業や、2,3回やるような作業はなんでも自動で出来るようにしていきます(意思表明
マクロ書くのも早くなってきたしね!