MicrosoftAccessの使い方【クエリ②】

MicrosoftAccess

Accessの基本的な使用法はこちら

クエリの基本はこちら

今回はクエリの発展編です。

データが無いテーブルとの結合

複数のテーブルを作成した場合、こちらのテーブルにはいるけど別のテーブルにはいないという場合があると思います。

例えば、個人情報テーブルには20211014006のIDを持つ川島さんがいますが、出退勤テーブルにはいません。

この場合、普通にリンクさせると、共通のIDしか拾われないので、個人情報にしかいない川島さんは表示されません。

川島さんも表示したい場合はリンクさせるときに一工夫必要です。

リンクさせるときに繋いだ線の上で右クリックし、「結合プロパティ」をクリックします。

今回は個人情報のほうがレコードが多いので2を選択します。

するとリンクの線が矢印に変わりました。

この状態で表示すると

こんな感じで個人情報と出退勤それぞれ全てのレコードが表示されました。川島さんは出退勤テーブルにはいないので空白で表示されます。

このように使うと、川島さんが出勤していないのが一目でわかりますね。

色々応用してみましょう。

集計

クエリには「集計」という機能があり、それを使うと合計や平均を簡単に出力することができます。

まず数値の入ったテーブルを用意します。

この料金を元に計算してみましょう。

クエリをデザインビューで開き、フィールドの空白部分で右クリックをします。

「集計」を選択します。

集計欄が現れるので、料金を合計にします。

表示すると「高速」でグループ化されたそれぞれの「料金の合計」が表示されます。

今回は首都高が複数あったので、首都高がグループ化され、その合計が表示されています。

この要領で平均なども出せるので便利ですね。

関数の利用

AccessでもExcelのように関数を使うことができます。クエリで関数を使うとより詳しく抽出できるので便利です。

iif

まずは代表的な「iif」から行きましょう。

Excelでは「if」ですがAccessでは「iif」を使います。

「iif」は「もし~なら」という仮定を表現します。クエリであれば「もしこの値が○○なら足し算しなさい」などという指示も可能です。

では具体的にいきましょう。

まずはクエリを作成します。

今回は都道府県に「東京都」があれば「ある」、なければ「ない」と表示しましょう。

退勤の右(空白)のフィールドに以下のように入力します。

有無:iif([都道府県]=”東京都”,”ある”,”ない”)

表示すると一番右に「有無」フィールドが出てきて、東京都の部分に「ある」、それ以外に「ない」が表示されます。

「if」も「iif」も真偽を判断します。

「iif([フィールド]=”値”,”真の値”,”偽の価”)」のような形ですね。

シンプルに合計を出すだけなら集計で十分ですが、「この場合だけ足し算させる」などの場合はiifを使うと便利です。

between A and B

「between A and B」はAの値とBの値の間を抽出します。

例えば、2021/10/11~2021/10/13のデータを抽出してみます。

元ネタがこちら。

2021/10/10~2021/10/14までデータがあります。

クエリのデザインビューで、日付の抽出条件に

Between #2021/10/11# and # 2021/10/13 #

と入力してください。※日付の場合は前後に#を付けます。

表示すると

2021/10/10と2021/10/14がなくなり指定した期間だけ表示されました。

これは日付だけでなく、数値でも指定できるので便利な抽出方法です。

他にも関数は色々ありますがまずはiifなど使う機会が多いと思いますので参考になれば。

最後までご覧頂きありがとうございました!

タイトルとURLをコピーしました