最新の日付を含むレコードを検索する

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。簡単に参照できるように、こちらに英語の記事があります。

この記事では、上位の値のクエリと集計クエリを使用して、レコードセット内の最新または最も古い日付を検索する方法について説明します。これにより、顧客が注文を最後に配置した場合や、売上に最適な5つの四半期が市区町村ごとに表示されている場合など、各種のビジネス上の質問に回答するのに役立ちます。

この記事の内容

概要

サンプルデータを準備する例と共に従う

最新の日付を検索する

レコードのグループの最新の日付を検索する

概要

トップ値クエリを使用して、データをランク付けしたり、上位のアイテムを確認したりすることができます。トップ値クエリは、検索結果の先頭から指定された数値またはパーセント値を返す select クエリです。たとえば、web サイトの最も一般的な5つのページ。トップ値クエリを任意の種類の値に対して使うことができます。数値を指定する必要はありません。

ランク付けする前にデータをグループ化または集計する必要がある場合は、上位の値クエリを使用する必要はありません。たとえば、会社が運営する各都市の指定された日付の売上番号を検索する必要があるとします。この場合、都市はカテゴリになります (市区町村ごとにデータを検索する必要があるため)、集計クエリを使用します。

トップ値クエリを使用して、テーブルまたはレコードグループ内の最新または最も古い日付を含むレコードを検索すると、次のようなさまざまなビジネス上の質問に答えることができます。

  • 最近ほとんどの売上を行っているのはだれですか?

  • 前回得意先から注文があったのはいつか。

  • チームの次の3つの誕生日はいつですか?

トップ値クエリを作成するには、まず、選択クエリを作ることから始めます。次に、質問に基づいてデータを並べ替える-上または下を探しているかどうかを確認します。データをグループ化または集計する必要がある場合は、select クエリを集計クエリに変換します。次に、 MaxまたはMinなどの集計関数を使用して、最上位または最小値を返すか、最初または最後の日付を返します。

この記事では、日付/時刻データ型が使用されている日付値を前提としています。日付の値がテキストフィールドに含まれている場合は、.

トップ値クエリではなくフィルターを使用することを検討する

特定の日付を念頭に置いている場合は、通常、フィルターの方が適しています。トップ値クエリを作成するか、またはフィルターを適用する必要があるかどうかを判断するには、次の点を考慮します。

  • 日付が一致するすべてのレコードを返す必要がある場合は、指定した日付より前にある、またはそれより後に、フィルターを使用します。たとえば、4月 ~ 7 月の売上の日付を表示するには、フィルターを適用します。

  • フィールドに最新または最新の日付を含む、指定された量のレコードを返す場合、正確な日付値がわからない場合、または重要でない場合は、トップ値クエリを作成します。たとえば、ベスト5の売上四半期を表示するには、トップ値クエリを使用します。

フィルターを作成して使用する方法の詳細については、「 Access データベースの select レコードを表示するためのフィルターを適用する」を参照してください。

ページの先頭へ

サンプルデータを準備する例と共に従う

この記事の手順では、次のサンプルテーブルのデータを使用します。

[社員] テーブル   

最初Name

都道府県

市区町村

CountryOrR egion

出生 日付

雇う 日付

鈴木

保美

東京都

調布市

日本

1968/02/05

1994/06/10

山本

浩平

神奈川県

川崎市

日本

1957/05/22

1996/11/22

園村

真一

東京都

栃木市

日本

1960/11/11

2000/03/11

宮西

君彦

千葉県

松戸市

日本

1964/03/22

1998/06/22

藤巻

陽子

埼玉県

さいたま市

日本

1972/06/05

2002/01/05

小林

昌子

栃木県

栃木市

日本

1970/01/23

1999/04/23

河田

弘穀

静岡県

沼津市

日本

1964/04/14

2004/10/14

西村

美智江

長野県

松本市

日本

1959/10/29

1997/03/29

EventType テーブル   

タイプ コード

イベント Type

"1"。

製品発表

51

企業の催事

76

私的な催事

1.8

資金調達

5

見本市

2.7

講演

7

コンサート

3.6

展示会

9

街頭宣伝

"得意先" テーブル   

得意先コード

会社名

連絡先

"1"。

楽市食品株式会社

今賀 千津

51

あじあ株式会社

幡垣 修一

76

飛騨物産株式会社

西詰 幸造

1.8

雪野フーズ

福本 富美江

5

ヒロコーポレーション

舟田 けい

2.7

アドベンチャー ワークス

小熊 一之

7

グラフィック デザイン インスティテュート

藤島 昭英

3.6

雪花ガーデン

田本 千賀

[イベント] テーブル    

イベント コード

イベント Type

得意先

イベント 日付

料金

"1"。

製品発表

楽市食品株式会社

4/14/2011

\1,000,000

51

企業の催事

あじあ株式会社

4/21/2011

\800,000

76

見本市

あじあ株式会社

5/1/2011

\2,500,000

1.8

展示会

グラフィック デザイン インスティテュート

5/13/2011

\450,000

5

見本市

楽市食品株式会社

5/14/2011

\550,0000

2.7

コンサート

雪花ガーデン

5/23/2011

\1,200,000

7

製品発表

ヒロコーポレーション

6/1/2011

\1,500,000

3.6

製品発表

雪野フーズ

6/18/2011

\2,100,000

9

資金調達

アドベンチャー ワークス

6/22/2011

\130,000

10

講演

グラフィック デザイン インスティテュート

6/25/2011

\245,000

11

講演

楽市食品株式会社

2011/7/4

\380,000

5.4

街頭宣伝

グラフィック デザイン インスティテュート

2011/7/4

\550,000

注: このセクションで説明する手順では、[得意先] テーブルと [イベント タイプ] テーブルが、[イベント] テーブルとの一対多リレーションシップの "一" 側にあると想定しています。この場合、[イベント] テーブルは、[得意先コード] フィールドと [タイプ コード] フィールドを共有します。次のセクションで説明する集計クエリは、このリレーションシップが定義されていないと動作しません。

サンプル データを Excel ワークシートに貼り付ける

  1. Excel を起動します。空のブックが開きます。

  2. Shift キーを押しながら F11 キーを押して、ワークシートを挿入します (4 つ必要です)。

  3. 各サンプル テーブルから空のワークシートにのデータをコピーします。列見出し (1 行目) を含めます。

ワークシートからデータベース テーブルを作成する

  1. 1 枚目のワークシートから、列見出しを含むデータを選択します。

  2. ナビゲーション ウィンドウを右クリックし、[貼り付け] をクリックします。

  3. [はい] をクリックし、最初の行に列見出しが含まれていることを確認します。

  4. 残りの各ワークシートに対して、手順 1 ~ 3 を繰り返します。

最新の日付を検索する

このセクションの手順では、サンプルデータを使用して、トップ値クエリを作成するプロセスについて説明します。

基本的なトップ値クエリを作成する

  1. [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。

    [テーブルの表示] ダイアログ ボックスが表示されます。

  2. [社員] テーブルをダブルクリックし、[閉じる] をクリックします。

    サンプル データを使用する場合は、[社員] テーブルをクエリに追加します。

  3. クエリに使用するフィールドをデザイン グリッドに追加します。それぞれのフィールドをダブルクリックするか、または [フィールド] 行の空白セルにそれぞれのフィールドをドラッグ アンド ドロップします。

    サンプル テーブルを使用する場合は、"姓"、"名"、および "誕生日" の各フィールドを追加します。

  4. 上位または下位の値を含むフィールド (サンプル テーブルを使用する場合は [誕生日] フィールド) 内で、[並べ替え] 行をクリックし、[昇順] または [降順] を選択します。

    降順の並べ替え順序を選択した場合は最も新しい日付が返され、昇順の並べ替え順序を選択した場合は最も古い日付が返されます。

    重要: [並べ替え] 行に値を設定する必要があるのは、日付を含むフィールドに対してだけです。他のフィールドに対して並べ替え順序を指定してクエリを実行した場合は、目的の結果を得られません。

  5. [デザイン] タブの [ツール] で [すべて] ([トップ値] の一覧) の横にある下向き矢印をクリックし、表示するレコードの数を入力するか、一覧からオプションを選びます。

  6. [実行] ボタンの画像 をクリックしてクエリを実行し、データシート ビューに結果を表示します。

  7. クエリを NextBirthDays として保存します。

このようなトップ値クエリでは、年齢が最も高いまたは低い社員などの基本的な質問の回答を得ることができます。次の手順では、式やその他の抽出条件を使用してクエリに柔軟性を追加する方法について説明します。次の手順で示す抽出条件を使用すると、次に誕生日を迎える 3 人の社員のレコードが返されます。

抽出条件をクエリに追加する

次の手順では、前の手順で作成したクエリを使用します。テキスト値ではなく、実際の日付/時刻データが含まれている限り、別のトップ値クエリと共にフォローすることができます。

ヒント: このクエリのしくみについて理解したい場合は、各ステップでデザインビューとデータシートビューを切り替えます。実際のクエリコードを表示したい場合は、[SQL ビュー] に切り替えます。ビューを切り替えるには、クエリの上部にあるタブを右クリックし、目的のビューをクリックします。

  1. ナビゲーションウィンドウで、NextBirthDays クエリを右クリックし、[デザインビュー] をクリックします。

  2. クエリデザイングリッドで、生年月日の右側の列に、次
    のように入力します。MonthBorn: "m"、[生年月日])
    この式では、"日付" 関数を使用して、月を生年月日から抽出します。

  3. クエリデザイン
    グリッドの次の列で、次のように入力します。DayOfMonthBorn: "d", [生年月日])
    この式では、[日付] 関数を使用して、誕生日から月の日付を抽出します。

  4. 入力した2つの式のそれぞれについて、[表示] 行のチェックボックスをオフにします。

  5. 各式の [並べ替え] 行をクリックし、[昇順] を選びます。

  6. [生年月日] 列の [抽出条件] 行に、次の
    式を入力します。month ([誕生日]) > month (date ()) または month ([誕生日]) = month (date ()) と day ([誕生日]) > day (date ()
    ) This式では、次の操作を行います。

    • month ( [誕生日]) > month (date ())を指定すると、各従業員の生年月日が将来の月に分類されます。

    • month ( [誕生日]) = month (date ()) と day ([誕生日]) > day (date ())は、現在の月に生年月日が発生した場合、誕生日が現在の日以降になることを指定します。

      つまり、この式では、1月1日から現在の日付までの誕生日が発生したレコードはすべて除外されます。

      ヒント: クエリ抽出条件式のその他の例については、「クエリの抽出条件の例」を参照してください。

  7. [デザイン] タブの [クエリの設定] グループで、[差出人] ボックスに「 3 」と入力します。

  8. [デザイン] タブの [結果] グループで、[実行] ボタンの画像 をクリックします。

注: 独自のデータを使用している独自のクエリでは、指定したレコードの数が多い場合があります。データに複数のレコードが含まれていて、上位の値の中にある値を共有している場合は、必要以上にレコードを返すことを意味している場合でも、クエリはそのようなレコードをすべて返します。

ページの先頭へ

レコードのグループの最新の日付を検索する

集計クエリを使用して、グループに分類されているレコード (市区町村ごとにグループ化したイベントなど) の最も古い日付または最新の日を検索します。合計クエリは、集計関数 ( Group By MMaxCountFirstLast)を使用して、各出力フィールドの値を計算する select クエリです。

分類に使うフィールドと、集計する値を含むフィールドをグループ化して指定します。その他の出力フィールドを含める場合は、イベントの種類によってグループ化されたときに顧客の名前を入力します。クエリでは、これらのフィールドを使用してグループを作成し、元の質問に回答しないように結果を変更することもできます。他のフィールドを使用して行にラベルを付けるには、集計クエリをソースとして使用する追加のクエリを作成し、そのクエリに追加フィールドを追加します。

ヒント: ステップでクエリを作成することは、より高度な質問に答えるための非常に効果的な戦略です。複雑なクエリを実行するときに問題が発生する場合は、一連の単純なクエリに分割できるかどうかを検討してください。

集計クエリを作成する

この手順では、この質問に答えるために、イベントのサンプルテーブルEventType サンプルテーブルを使用します。

各イベントの種類の直近のイベントは、コンサートを除きますか?

  1. [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログボックスで、イベントと EventType テーブルをダブルクリックします。
    各テーブルは、クエリデザイナーの上部のセクションに表示されます。

  3. [テーブルの表示] ダイアログ ボックスを閉じます。

  4. EventType テーブルの EventType フィールドと、[イベント] テーブルから EventDate フィールドをダブルクリックして、クエリデザイングリッドにフィールドを追加します。

  5. クエリデザイングリッドのEventTypeフィールドの [抽出条件] 行で、[ <]、[コンサート] の順に入力します。

    ヒント: 抽出条件式のその他の例については、「クエリの抽出条件の例」を参照してください。

  6. [デザイン] タブの [表示/非表示] グループで [集計] をクリックします。

  7. クエリデザイングリッドで、EventDate フィールドの [集計] 行をクリックし、[最大値] をクリックします。

  8. [デザイン] タブの [結果] グループで [表示] をクリックし、[ SQL ビュー] をクリックします。

  9. SQL ウィンドウの SELECT 句の末尾にある as キーワードの直後に、 MaxOfEventDateMostRecentに置き換えます。

  10. クエリを MostRecentEventByType として保存します。

2 番目のクエリを作成して関連データを追加する

この手順では、前の手順の MostRecentEventByType クエリを使用して、次の質問に回答します。

各イベントの種類の直近のイベントでは、ユーザーはだれですか?

  1. [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログボックスの [クエリ] タブで、MostRecentEventByType クエリをダブルクリックします。

  3. ダイアログボックスの [テーブル] タブで、[イベント] テーブルと [得意先] テーブルをダブルクリックします。

  4. クエリデザイナーで、次のフィールドをダブルクリックします。

    1. [イベント] テーブルで、[EventType] をダブルクリックします。

    2. MostRecentEventByType クエリで、[MostRecent] をダブルクリックします。

    3. [得意先] テーブルで、[会社] をダブルクリックします。

  5. クエリデザイングリッドの [ EventType ] 列の [並べ替え] 行で、[昇順] を選びます。

  6. [デザイン] タブの [結果] で、[実行] をクリックします。

ページの先頭へ

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×