今アクセス97を使用しています。
アクセスのクエリーを使って下記のようなことをやりたいのですが
抽出の条件をどうすればいいかわかりません。
わかる方いらっしゃいましたらお願いします。
説明不足ありましたら補足させていただきます。
A:支店名 B:更新日 C:電話番号
1 青森支店 | 2001/5/20 | aaa-aaaa←――支店名ダブっているときはB:更新日が新しいもの抽出
2 青森支店 | 2001/3/20 | bbb-bbbb
3 岩手支店 | 2001/2/30 | ccc-cccc←――支店名ダブっているときはB:更新日が新しいもの抽出
4 岩手支店 | 2001/2/30 | ddd-dddd
5 宮城支店 | 2001/5/20 | eee-eeee←――支店名ダブっないときそのまま
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
A:支店名 B:更新日 C:電話番号
1 青森支店 | 2001/5/20 | aaa-aaaa
3 岩手支店 | 2001/2/30 | ccc-cccc
5 宮城支店 | 2001/5/20 | eee-eeee
No.2
- 回答日時:
支店名をキーとしてグルーピングをしてやれば問題ないと思います。
Sql文の例を掲載しておきます。
SELECT 支店名, Min(更新日), Min(電話番号)
FROM Tab
GROUP BY 支店名;
Minは更新日の中で一番、小さい物を表示すると言う意味です。
更新日で新しいものを表示したいのであればMaxで良いと思います。
デザインビューでクエリを編集する場合は
デザインビューを開き
フィールドとかテーブルとかって書いてある所で
右クリックをし集計を選択します。
そして支店名のみ新たに出来た集計って所をグループに設定し
他のところは一番、大きい値を表示したい場合は最大、
小さい値の場合は最小、先頭のものを表示したいのであれば先頭
と言う具合に指定してやれば問題ないと思います。
No.3
- 回答日時:
ええと先にかかれているお二人の回答には不備が有ります。
ついでに質問にも
まず質問は
・3,4レコード目が同一支店で同じ日付になっている事
・2月30日という存在しない日である事
訂正として
3レコード目の日付を3月30日とします。
4レコード目の日付を2月28日とします。
この時No1、2の場合電話番号が最大か最小になる為一致しなくなります。
1 青森支店 | 2001/5/20 | aaa-aaaa
2 青森支店 | 2001/3/20 | bbb-bbbb
を例に取ると更新日をMAX取るのは問題有りません。これは大きい方が最新ですから
ただし、電話番号の場合、MINならばaaa-aaaaを抽出するし、MAXならbbb-bbbbを抽出します。
よって欲しい結果である
1 青森支店 | 2001/5/20 | aaa-aaaa
を出せる保証が有りません。
簡単な方法としては
クエリー1で支店名と更新日の一覧を作成する。
この時グループ化を行い、支店名はグループ化、更新日は最大を取るようなクエリーを作成します。
このクエリー1と支店名が入っているテーブルとで支店名と更新日で結合させて抽出すればお望みのものが表示されると思います。
No.4ベストアンサー
- 回答日時:
私も以前、同様の処理を簡単に出来ないものかと悩んだことがあります。
結局、一番シンプルなのはyanmaaさんが言われるようにまず以下のようなクエリーをつくり、
SELECT テーブル1.支店名, Max(テーブル1.更新日) AS 更新日の最大
FROM テーブル1
GROUP BY テーブル1.支店名;
次のクエリーで必要なレコードを抽出する方法でしょう。
SELECT テーブル1.支店名, クエリー1.更新日の最大, テーブル1.電話番号
FROM テーブル1 INNER JOIN クエリー1 ON (テーブル1.更新日 = クエリー1.更新日の最大) AND (テーブル1.支店名 = クエリー1.支店名);
クエリーをいくつも作りたくないというのなら、サブクエリーを使って、
SELECT テーブル1.支店名, テーブル1.更新日, テーブル1.電話番号
FROM テーブル1
WHERE テーブル1.更新日 = (SELECT MAX(テーブル1_1.更新日) FROM テーブル1 AS テーブル1_1 WHERE テーブル1.支店名 = テーブル1_1.支店名);
のようにする方法もあります。
ご質問のそのままのお答えにはなっていませんが、私が実際におこなったのは、元のテーブルに、D:最終データ(True/False型)フィールドを追加して、新規データを入力するたびに、イベントプロシージャで同じ支店の最後の入力レコードのみ、最終データフィールドの値が“True”になるように処理をしてやり、レコードの抽出を単純に以下のクエリーで行う方法でした。
SELECT テーブル1.支店名, テーブル1.更新日, テーブル1.電話番号
FROM テーブル1
WHERE テーブル1.最終データ = True;
私の場合、業務でレコードの抽出を頻繁に行うことから、データのサイズよりパフォーマンスを重視し、クエリーをシンプルにするためにテーブルの方に細工をしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ろうきんの口座番号と支店名が...
-
口座を開設した支店でしか出来...
-
「これはヤバかったな」という...
-
銀行振込 支店番号と口座番号教...
-
J.Pモルガン東京支店に口座を持...
-
支店番号(店番)の桁が4桁の場...
-
この二つの違いがわかりません
-
銀行の口座を開設した支店でし...
-
UFJ銀行の口座の支店変更をした...
-
なぜ横浜のゆうちょ銀行はさい...
-
通帳の支店名を変えることはで...
-
振込手数料の区分の意味
-
バイトレを始めました そこで、...
-
CityBank 支店とは?
-
新しい通帳への繰越
-
りそな銀行の定期預金ひきだし...
-
UFJ銀行あさぎり支店
-
信用金庫に勤めている方に給与...
-
ゆうちょ銀行の記号から支店名...
-
キャッシュカードは口座をつく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「これはヤバかったな」という...
-
ろうきんの口座番号と支店名が...
-
口座を開設した支店でしか出来...
-
支店番号(店番)の桁が4桁の場...
-
J.Pモルガン東京支店に口座を持...
-
バイトレを始めました そこで、...
-
【Excel】 複数条件で抽出する。
-
銀行振込 支店番号と口座番号教...
-
なぜ横浜のゆうちょ銀行はさい...
-
楽天銀行のチェロ支店とは、ど...
-
ゆうちょ銀行に口座を持つ方、...
-
UFJ銀行の口座の支店変更をした...
-
三菱東京UFJ銀行の金融機関番号...
-
通帳を新通帳に繰越すると支店...
-
CityBank 支店とは?
-
UFJ銀行あさぎり支店
-
この二つの違いがわかりません
-
相手に大金を振り込んでもらう...
-
銀行の口座を開設した支店でし...
-
ゆうちょ銀行の記号から支店名...
おすすめ情報