重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Accessで選択クエリを作成中です。抽出条件での条件の設定の仕方を教えてください。具体的には、「テーブル1」TBLの「対象年月」フィールドにおいて、対象年月の末尾2桁が02,08で、かつ、最も頭4桁が大きいもの(ただし、頭4桁が同じ数値の場合は末尾2桁の大きいものを優先)を抽出するようにしたいのですが、どのように抽出条件を設定すればよいか、アドバイスをください。

具体例としまして、以下のようなデータに対し、〇のついたレコードを抽出できるようにしたいです。

例1)
202309
202311
202402
202403
202405
202408 〇
202409

例2)
202302
202403
202408
202409
202502 〇
202503

質問者からの補足コメント

  • ちなみにデータ型は、短いテキストです。

      補足日時:2025/01/04 07:30

A 回答 (3件)

データ型が「短いテキスト」でも「年月」の列を分割し「年」と「月」の列を作る事は可能です。



選択クエリで作った「年月」という列の横に、まずは「年」の列を作ってみましょう。方法は、

・クエリをデザインビューで開く
・「年月」フィールドの横に「年」という列を作ります(フィールドに「年:left(4,年月)」と入れる事で、作成されるかと思います)

同様に「月」の列を作り、抽出し、並び替えます。
邪魔であれば「年」と「月」の列は、最後に非表示にすれば良いです。
    • good
    • 1

SQL文なら


SELECT TOP 1 [テーブル1].対象年月
FROM テーブル1
WHERE ([テーブル1].対象年月 Like "*08") OR ([テーブル1].対象年月 Like "*02")
ORDER BY 対象年月 DESC;

とか?
上記のデザインビューは添付画像のようになります。
「Accessで選択クエリを作成中です。抽」の回答画像2
    • good
    • 1

一気にやろうとすると、数式が複雑になりますので、自分だったら列を2つに分けます。

年月の列が「yyyymm」だとしたら「yyyy」と「mm」に分けるイメージです。

で「mm」の列の抽出条件を「02 OR 08」に設定し、目的の行が一番上に来るよう、並び替え条件を設定します。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A