YouTubeでも紹介しています。是非ご覧ください。
データベースは、VBAではなく、いかにデータを抽出するかです。
目に見えない、架空のクエリを想像できれば、さらに、データ抽出が楽になります。
目に見えないクエリを想像することで、抽出可能なデータ
こんにちは。伊川です。
前回は、SQL文の基礎中の基礎を紹介しました。
また、前回紹介した書籍のChapter3で、LIMIT句というのが登場します。
結論から言いますと、ACCESSでは、LIMIT句は、利用できません。
なので、LIMIT句の代替のコードを利用します。
少し面倒な作業が増えます。
もちろん、このような複雑なことをしなくても、今回のサンプルでは、データ抽出ができます。
しかし、この面倒な作業を、覚えることで、複雑なデータ抽出ができるようになります。
VBAよりも、ずっと面白い内容です。
このブログはこんな人にお勧め
ACCESSでクエリを勉強している人
クエリのスキルに限界を感じている人
SQLを勉強している人
このブログを、読み終わるころには・・・・
初めて、競馬で、データ抽出で、壁に当たった内容でした。
デザインビューを見ても到底、その時の私には、理解できない内容でした。
しかし、目に見えないクエリが、どのように作動しているのかを、このブログで理解できるようになります。
上位2つのレコードを抽出したい
この、テーブルから、上位2つのレコードを抽出します。
つまり、伊川直助、伊川直子を、抽出します。
このような状態にします。
普通は、これで完了です。
もちろん、これでも正解ですが、架空のクエリを作成して、抽出をします。
LEFT JOIN、左外部結合を利用して、抽出します。
LEFT JOIN(左外部結合) 作業手順 その1 MT_testから、上位2つのレコードを定義する
イメージは、こんな感じです。
SELECT TOP 2 * FROM MT_test
この意味は、MT_testの、上位2つのレコードを定義する書き方です。
前回も言いましたが、SELECT~ FROM ~の基本系です。
まだ、ここには、記載されていませんが、目に見えないクエリは、t2が付いているクエリです。
SELECT TOP 2 * FROM MT_test
この文章から、下記のクエリを想像するのです。
LEFT JOIN(左外部結合) 作業手順 その2 MT_testと、t2を結合する
LEFT JOIN (SELECT TOP 2 * FROM MT_test) AS t2
ON MT_test .ID = t2.ID
このSQL文の意味は、
左外部結合しなさい。
MT_testのIDと、SELECT TOP 2 * FROM MT_test(目に見えないクエリ)のID
という意味です。
LEFT JOIN(左外部結合) 作業手順 その3 MT_testと、t2の外部結合の結果
この赤いところが、左外部結合されています。
t2に関しては、MT_testの、上位2つのレコードしか定義していないので、3~5は、Nullになります。
LEFT JOIN(左外部結合) 作業手順 その4 WHEREで、空白以外を抽出
WHERE t2.ID IS NOT NULL;
これも前回紹介した、SQL文の基本中の基本です。
このように抽出することができます。
LEFT JOIN(左外部結合) 作業手順 その5 所管
これは、私が、毎週、かかわっている競馬のデータです。
抽出条件
数値、1位、2位の馬が、1枠であること
かつ、同一グループ(同一レース)であること
この条件で、抽出するには、
今回、紹介した、架空のクエリを作成します。
競馬も、悪い事ばかりではありません。
ここがポイント
前回と、今回の、動画、ブログを読んで、面白いと思った人は、
本気で、SQLの勉強をした方がいいです。
VBAより、多分、お金になります。
間違いないです。
ということで、少し難しめのクエリの書籍も購入しました。
SQLは、本当に面白いです。
まとめ
架空のクエリを作成できるようになり、また、データ抽出の幅が広がりました。
ぜひとも、架空のクエリを作成できることに感動してください。
今回も最後まで読んでいただきありがとうございました。