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など使う機会が多いと思いますので参考になれば。
最後までご覧頂きありがとうございました!