VBでmod演算ってどう書くんだっけと思ったときに、通常ならAlt+Tabを何回か押してLunascapeに切り替えた後Alt-s→VB modでENTって流れでほんの数秒で問題は解決するというのに、googleがないというだけで実際に書いて試してみないといけないではないか。まあそれくらい覚えろよって話なんだけども。基本的に"身に着ける"為には経験が不可避で、勉強するというのは結局のところGoogleのキーワードを覚えるくらいが効率的には結構いいんじゃないかと思う。まあなんというか、手段が存在することを知るというか。
あるselect文で得た結果セット(単一列)をn倍にしたい、すなわち結果セットのレコードをすべてn個重複して返したいときどうするかという問題がちょうど発生しまして。イメージ的にはAccessでクエリをベースにしたレポートで、同じデータをn個(入力から取得)連続して並べたいとかそんな感じ。クエリの結果セットの部分で重複を処理しておきたいのです。で、まあ真っ先に考えるのは適当なテーブルからn列とって直積を取ることだと思うんだけど、これが案外うまくいかない。というのは、ピボットテーブルとして使える「n行存在することが保証されたテーブル」がないんじゃないか、と。まあdualとかあるけどさー。あれ1行しかないし。Oracle社はもっと行数のあるdualを用意するべきなんじゃね。俺が知らないだけなのかもしれないが。元のテーブルが100行程度はないことなんか多分ありえない(わりと重要げなマスタ)なので、自分自身をピボットテーブルにしたらいいんじゃねと言うことで作成したのが第一案。一応第二案として提案したのは、プログラム側で元のSQLの後ろにunion allつけて、同じSQLをn個くっつける方法。ありえんと一蹴。うん俺もそう思う。結局テンポラリなテーブルを作ってそこに求める結果セットを作ることになった。selectした行を1行1行読んでinsertとかなんて前時代的な遅いんじゃね。まあ多分最初に使ったらそうそう使われることのない機能だし、業務が普通に動いてるときに使う機能でもないんで早いとか遅いとか関係ない気もするが。MAX1000行程度だしね。SQLクックブックの知識も結構役に立つじゃないかと思ったんだけど。あれはピボットテーブルが存在することを前提にしているものが結構あるからなあ。わりと趣味の世界の話か。結局どんな鮮やかな解法も他人からわかりにくいと言われたらあんまり無理に使うわけにも行かないわけで。
リアルアーケードプロ当日販売分争奪戦だが、HORI鯖落ちてるなあと思ってるうちに終了。結局かえんかった。次の再販は11月末な感じらしいのでそれを期待か。ってところで11月下旬から12月上旬って俺また引っ越す時期だよねえ。
月100時間の残業のわりには今の生活余裕あるよね遊ぶ時間が残ってるくらいだしとふと思ったのだが、平日+2時間の残業×5と1日休日出勤がだいたい等価なんだな。つまり毎日23時過ぎに会社を出て終電間際で帰るが、休日は週2日きっちり休みと、21時くらいに会社を出るが土曜は通常通りというのが大体一緒ということか。土日のどっちに出社するかを選べるのなら後者のほうが良さそうかなあ。まあどっちも十分駄目だと思うのだが。