最近では、アクセス以外のデータベースでも一応は対応出来ているようだ。
ただ、コーディングが綺麗に見えないのは仕方ないのか?
この機能は、MSがどっかから買い取ったとかその当時言われていたのを思い出した。
そうだ、それを聞いた私はどんだけのものか?と興味を持って調べて覚えたものだった。
どっちがその技術を応用した物かは分かっていないが、ピボットテーブルも同じ技術的背景を持っていて作られている様だ。
イスラエルのソフト屋からだったか、技術買収してそれを応用したものだったと記憶している。15年以上前の話だからか?ソースは出てこなかった。
ピボットテーブルは制限なしでフィールドやレコード・データを扱えるのに対して、クロス集計クエリーはそれぞれ、3つ、1つ・1つという制限がある。これって差が大きすぎだ。
作った経験から言うと、出力するレコードのデータを考えて作っていないと、どちらも分かりにくい表になってしまう。
私の作ったプログラムでは、両方を採用している。又、どちらの長所も取り入れた作り方にしている。
その前処理と後処理を高速化して前述の制限も何のそので、上手く使えていると思う。見栄えも、最終的な出力でもないので、クロス集計クエリーでの見栄えのいい作表が苦手という点も気にならない。速度的にも、他のSQLでの実行に比べても、この部分に関しては遜色ないと思う。
大雑把に流れを整理すると、テキストファイル ー> 削除クエリー・追加クエリー ー> テーブル ー> 不一致クエリー
テーブル ー> クロス集計クエリー ー> 削除クエリー・追加クエリー ー> テーブル ー> クエリー ー> テーブル(ライン・製品毎)
と、最後のテーブルが、原料・製品毎の集計した別バージョンも作って、それぞれをピボットテーブルで参照している形だ。
途中に桁やデータ型の変換や正規化などやったりして細かい処理が幾重にも重なってされているが、こちらは高速化の為だけに考えられたやり方なので、大筋には関係ない話になる。
アクセスの速度は、遅いように思われがちだが、開発スピードや最適化を上手くやれば結構使える物に仕上がる様だ。
PC単体での使用がほとんどだが、ODBCを活用するとネットワーク越しでもデータの再利用が可能になるので、SQLサーバなどにアップグレードしなくても使えている。今の所はデータ容量を見ても限界になったりすることも無いと言いきれるので、当分は現状維持になりそうだ。
ただ、コーディングが綺麗に見えないのは仕方ないのか?
この機能は、MSがどっかから買い取ったとかその当時言われていたのを思い出した。
そうだ、それを聞いた私はどんだけのものか?と興味を持って調べて覚えたものだった。
どっちがその技術を応用した物かは分かっていないが、ピボットテーブルも同じ技術的背景を持っていて作られている様だ。
イスラエルのソフト屋からだったか、技術買収してそれを応用したものだったと記憶している。15年以上前の話だからか?ソースは出てこなかった。
ピボットテーブルは制限なしでフィールドやレコード・データを扱えるのに対して、クロス集計クエリーはそれぞれ、3つ、1つ・1つという制限がある。これって差が大きすぎだ。
作った経験から言うと、出力するレコードのデータを考えて作っていないと、どちらも分かりにくい表になってしまう。
私の作ったプログラムでは、両方を採用している。又、どちらの長所も取り入れた作り方にしている。
その前処理と後処理を高速化して前述の制限も何のそので、上手く使えていると思う。見栄えも、最終的な出力でもないので、クロス集計クエリーでの見栄えのいい作表が苦手という点も気にならない。速度的にも、他のSQLでの実行に比べても、この部分に関しては遜色ないと思う。
大雑把に流れを整理すると、テキストファイル ー> 削除クエリー・追加クエリー ー> テーブル ー> 不一致クエリー
テーブル ー> クロス集計クエリー ー> 削除クエリー・追加クエリー ー> テーブル ー> クエリー ー> テーブル(ライン・製品毎)
と、最後のテーブルが、原料・製品毎の集計した別バージョンも作って、それぞれをピボットテーブルで参照している形だ。
途中に桁やデータ型の変換や正規化などやったりして細かい処理が幾重にも重なってされているが、こちらは高速化の為だけに考えられたやり方なので、大筋には関係ない話になる。
アクセスの速度は、遅いように思われがちだが、開発スピードや最適化を上手くやれば結構使える物に仕上がる様だ。
PC単体での使用がほとんどだが、ODBCを活用するとネットワーク越しでもデータの再利用が可能になるので、SQLサーバなどにアップグレードしなくても使えている。今の所はデータ容量を見ても限界になったりすることも無いと言いきれるので、当分は現状維持になりそうだ。