みっつの首をもつギドラさんを題材に
WHERE句のOR条件を何フィールドまで組めるか実験してみた。
CH003:ちびギドラ(真ん中の首)
CH004:ちびギドラ(真ん中の首)
CH005:ちびギドラ(真ん中の首)
みっつの首にはそれぞれ別々の人格があるため、登録IDを別々にしているが(入力の手間が3倍・笑)
彼らはバラバラには動けない。
常に3人(?)揃って出演しているわけであり、
つまり、ちびギドラが登場する回を知りたければ、
CH003もしくはCH004もしくはCH005のいずれかがヒットする話数を探せばいいということになる。
目的:
全115話の内、CH003もしくはCH004もしくはCH005が出演する
話数フィールドを探して抽出したい。
AccessSQLの根本的な仕組みとして、テーブル内のデータを自動で読み込み
表示フィールドを抽出する機能は存在しないため
SQLの冒頭SELECT句には表示したい列、つまりギドラたちが出演する話数をあらかじめ手書きで指定する必要が生じる。
SELECT
[第2話],[第5話],[第7話],[第10話],
[第12話],[第13話],[第14話],[第17話],[第18話],
[第21話],[第22話],[第25話],[第30話],
[第31話],[第33話],[第34話],[第38話],
[第44話],[第45話],[第49話],[第50話],
[第53話],[第55話],[第56話],[第58話],
[第62話],[第64話],[第65話],[第66話],[第67話],[第68話],[第69話],
[第73話],[第75話],[第78話],
[第81話],[第83話],[第85話],[第86話],[第88話],
[第91話],[第92話],[第94話],[第96話],[第98話],[第99話],
[第101話],[第102話],[第103話],[第104話],[第105話],
[第107話],[第109話],[第112話],[第113話]
って、もう答え出てるし!!(笑)
そう。
学習メモ7-14,7-15ともに、すでに分かっている答えのつじつま合わせ。
SQLを組む意味はなく、あくまで「条件をいくつまでこなすことが可能か」の検証が目的。
主人公ちびゴジラは全話出演のため、AND条件を試した際のSELECT句は*(テーブルの全フィールド)で問題なかったわけである。
AND条件と同様にOR条件においても、第115話までの条件追加は不可なようで残念。
ただ、クエリデザインやSQLを完成させること自体は可能。
とりあえず現存する115個のフィールドを追加していく。
115話めまで同じ構文
AND条件のときはクエリデザイン画面にてプログラム構築し、
Accessが自動形成してくれたSQLを用いたため、
()が多用されたSQLとなっていた。
今回はSQLビューから作成してみた。
AccessでOR条件を使用する際のデザイングリッド記入方法として、
抽出条件を階段式で1段ずつ下へ下へと追加していく習わしだが、
選択フィールドが多すぎて、クエリデザイン画面のデザイングリッドが使えないからでもある。
クエリデザイン画面はこんな感じ。
右へ右へフィールドが追加されていく。
SELECT句に該当するフィールドを追加し(設定:表示)
その右にWHERE句のフィールドが追加されていく。(設定:非表示)
WHERE句は115フィールド
列幅をギリギリまで短くしてみた
フィールドを第99話めまで削ったら、無事に動かすことはできました。
コードの末尾にそれを示す「;」を入力。
クエリのデータシートビュー
WHERE句は上限99話までしか指定できなかったものの
SELECT句で取得したいデータ(CH003もしくはCH004もしくはCH005が出演するフィールド)指定はあらかじめできているので
問題なく表示できたようです。