まぐMM
「覚えなくても理屈でわかる!ACCESSクエリ&SQL活用術」サンプル
ID:P0000921

 

2003/03/06 発行

◆週刊◆
   覚えなくても理屈でわかる!
    ACCESSクエリ&SQL活用術
                         創刊準備号
      
         ホームページ   http://www.e-learning-club.com
         メールアドレス  e_learning_club@yahoo.co.jp
         このメールマガジンは、『まぐまぐプレミアム』 
                             を利用して発行しています。
▽▽▽---------------------
--->今回の内容<------------
   ●発行者挨拶
   ●当マガジンの内容・方針
   ●記事のサンプル
   ●あとがき
---------------------------------------------------------------▲▲▲

▽▽▽---------------------

■■■■■■■■
■発行者挨拶


◆ご購読をご検討くださり誠にありがとうございます。

◆創刊準備号では当マガジンの方針と記事のサンプルをご覧ください。

◆当マガジンは有料となっております。この創刊準備号をよくお読みになり内容などにご納得の上、ご登録をお願いいたします。

◆当サイトでは無料のメールマガジン「SQLは覚えなくても理屈でわかる!」も発行しております。 内容は標準SQLの基礎から応用までカバーするものです。当マガジンの内容と関連する記事もありますし、 当サイトの説明のスタイルもお分かりになると思いますのでバックナンバーをご覧いただければと思います。当サイト(http://www.e-learning-club.com )のバックハンバーライブラリをクリックしてください。

■■■■■■■■
■当マガジンの方針


◆当マガジンはマイクロソフト社のデータベースソフトACCESSを使ったデータ活用法に焦点を絞った 記事を配信するメールマガジンです。

◆記事を読むにあたってACCESSに詳しい必要はありません。これから使おうという方、使い始めたばかりの方、 使っているがなんとなくはっきりわからないという方にお勧めです。

◆ACCESSで抽出した結果を、時間をかけEXCELを使ってさらに選択や加工をしていることはありませんか? そのような方にはこのマガジンはぴったりだと思います。

◆データベースのデータの活用法というと無数に方法があって一つ一つ覚えていくしかないと思いがちです。 では、こういった方法を整理しておくことはできないのでしょうか?

◆そこで、当マガジンではデータ活用にはいくつかの「型」があり、「型」を利用することでさまざまな場面に 対応が可能になると考えています。(ここで、「型」とは、あることをしようとするときに良く使われる方法のことです。 囲碁の定石や将棋の定跡に相当するものです。)

◆当マガジンでは機能別やキーワード順ではなく目的別に事例を紹介し、その事例を「型」から捉えることで 理解し応用ができることを目指します。この意味で当マガジンはACCESSの機能を説明する解説本と 事例を集めた事例集とデータベースの理論を説明する教科書の真中に位置するものです。

◆データの活用は、三つのフェーズに分解できます。つまり、データを検索・抽出するフェーズ、 抽出したデータを活用するフェーズ、用意できたデータを望む形で出力するフェーズです。 それぞれのフェーズの「型」を紹介していきます。

◆ACCESSは、バージョンアップを重ねるごとに機能や使い勝手が向上してきました。これからもそうだと思います。 しかし、データの活用の基本は変わりません。なぜなら、リレーショナルデータベースの基本構造は変わらないからです。 したがって、一旦データ活用の基礎を身につければこの先ACCESSがどんなに進化を遂げても応用ができます。

◆また、ACCESSを利用する上でSQLの知識が有効です。当マガジンでも必要に応じて解説をしていきますが、 順序だててSQLを基礎から学びたい方は当サイトの「SQLは覚えなくても理屈でわかる!」(無料です)をご購読ください。


■■■■■■■■
■記事のサンプル

====================================================================
◆以下が記事のサンプルです。内容、説明方法、レイアウトなどの改良を行ってまいりますので、実際の発行のときには スタイルや説明方法が変わることがあることをご了承ください。
====================================================================

■今回のカテゴリー■
◆プロセス:加工・集計

◆集計レベル:集計した結果を出力行として表示


■今回の事例■
◆事例:売上トレンドを把握するため、Zグラフを描きたい。そのため売上データからを日ごとに売上、月初めからの累積売上、 30日間の移動合計を一覧にした表を出力したい。

  


■利用する型の説明■
◆この事例を実行するためにはクエリの出力列として集計結果を表示できるものを指定する必要があります。 ACCESSの通常の集計はデザインビューで集計ボタンを押すと列値によるグループごとにさまざまな集計が簡単にできます。 しかし、抽出されたデータに対する固定的な範囲指定となってしまいます。今回の事例のように出力行ごとに異なる範囲の 集計結果を出力したい場合にはどうしたらいいでしょうか?

◆このような場合に使われる型は、「出力行ごとに同一テーブルの他の行や別のテーブルの行を参照する法」です。 演算フィールドを使って計算する場合、通常の四則演算などは同じ行の他の列や定数を使って計算します。他の行の値 を参照することはできません。今回の事例では出力する行ごとにある他の行の値を参照し集計することが求められます。

      

◆ここでちょっと考えてみてください。ACCESSで、テーブルの中の値を参照したり集計したりするものはなんでしょうか? そう、クエリです。つまり、「出力行ごとに他の行や別のテーブルの行を参照する法」とは「出力行ごとにクエリを実行する法」 といえます。

◆この型を実行するものとして、ACCESSには二種類の方法があります。ひとつが定義域集計関数、もうひとつがサブクエリです。 どちらもデザインビューでもSQLビューでも設計できるので、設計方法としては四通りがあるということになります。

◆定義集計関数には次のようなものがあります。
  DSUM、DAVG、DAvg、DCount、DLookup、DFirst、DLast
  DMin、Dmax、DStDev、DStDevP、DSum、DVar、DVarP

■方法1:定義域集計関数のDSumを使う■
◆クエリの出力列はデザインビューではデザイングリッドのフィールドに指定します。したがって、この事例の場合ですと、 日付、売上、月内の累積売上、売上の30日間の移動合計を指定する必要があります。

◆日付と売上については、元ののデータをそのまま出力します。問題は累積売上と移動合計です。

◆指定した範囲を合計する定義域集計関数としてDSumがあります。DSumの構文は次の通りです。

   DSum(集計対象の指定、テープルの指定、条件)

◆DSumの引数はダブルコーテーションで囲みます。また、条件は省略できますが指定しないと指定した テーブル全体の集計となります。

◆集計対象としてここでは売上、テーブルは日別売上です。まず、条件として2003/01/01から出力行の日付までの合計を 出力してみましょう。

  DSum("売上","日別売上","日付 BETWEEN #1/1/2003# AND 日付")

◆実行してみればわかりますが、全ての行に同じ値が出力されます。これでは累計になりません。 ここで必要なのは、この条件式の最後の日付が出力行ごとにその行の日付の値に自動的に代入されて集計されればいいわけです。 そのためには、次のようにを直します。

   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
   ・・・・・・・・内容は本編で・・・・・・・・・・・
   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

■方法2:サブクエリを出力列に利用する■
◆クエリの出力列はデザインビューでデザイングリッドのフィールドに指定します。この事例では、月内の累積売上、 売上の30日間の移動合計をサブクエリで集計します。

◆通常のサブクエリは固定の値を返すものです。定義域集計関数と同様にメインクエリの一行ごとにサブクエリを実行し 結果を出力しなくてはなりません。

◆つまり、メインクエリの行の列値をサブクエリの集計の条件に利用するのです。 このようなサブクエリは相関サブクエリといわれるものです。

◆まず、2003年の1月1日から10日までの集計するクエリを考えてみましょう。

   SELECT Sum(日別売上) AS 合計 FROM 売上
   WHERE 日付 Between #1/1/2003# And #1/10/2003#;

◆このSELECT文をデザイングリッドのひとつの出力項目として加えてみます。

   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
   ・・・・・・・・内容は本編で・・・・・・・・・・・
   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

---------------------------------------------------------------▲▲▲
■■■■■■■■
■あとがき


◆有料版ということで緊張しています。読者の皆様がご満足いただける記事をお送りできるようにがんばります。

◆ACCESSはEXCELやWORDと違って基礎理論であるデータベース理論をある程度は学習しないと提供されている機能の意味が 理解できません。しかし、マニュアルや解説本には基礎理論についてほとんど説明がないため、初心者にはいつまでも謎が残ってしまいがちです。

◆当マガジンではその謎解きを少しでもお手伝いできればと考えています。よろしくお願いいたします。
---------------------------------------------------------------▲▲▲
=====================================================================
■注意事項
 当マガジンの内容の利用については読者の皆様の責任においてなさってください。 万一、損害を被った場合でも当マガジンは一切の責任を負いかねます。

 当マガジンの記載の内容に関して引用、転載の際には必ず事前にご連絡いただき、当方の許可を得てから行ってくださるよう お願い申し上げます。 

 登録・解約につきましては
   ◆http://www.e-learning-club.com/Course_Access/intromm.htm
からいつでも行うことができます。

 ただし、メールマガジン配信の仕組みから当方では本人確認ができないため、登録・解除につきましては 読者の皆様ご自身で行ってくださるようお願いいたします。また、登録・解除に関する一切のお問合せについては 受け付けておりませんのでご了承ください。 
---------------------------------------------------------------------

 

閉じる

このページはまぐまぐプレミアムによる運営です
まぐまぐプレミアム