みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2003一つのクエリで結果を出したい2

お世話になります。

Access2003を利用しておりますが、一つのクエリで以下の算出(抽出?)は可能でしょうか。

検品テーブル
 ・ID
 ・ライン
 ・グループ

 ID ライン グループ
 1  L1    G1
 2  L1    G1
 3  L1    G2
 4  L1    G2
 5  L1    G2
 6  L2    G3
 7  L2    G3
 8  L3    G4
 9  L3    G4
 10  L3    G4
 11  L3    G4
 12  L3    G5
 13  L3    G5
 14  L3    G6
 15  L4    G7


結果として、一つのラインでのグループ数の最大値(上記の例だとL3はグループが3つあるので3)を一つのクエリで算出したいと考えております。
以下のように3つのクエリを作成すれば結果は得られるのですが、できれば一つのクエリでやりたいところです。

 (1)検品テーブルを、[ライン]と[グループ]でグループ化

   L1 G1
   L1 G2
   L2 G3
   L3 G4
   L3 G5
   L3 G6
   L4 G7


 (2)上記クエリをグループ化し[グループ]をカウント

   L1 2
   L2 1
   L3 3
   L4 1

 (3)上記クエリでグループカウントの最大値

     3

この最大値3を算出するのを一つのクエリで行いたいのですが、可能でしょうか。
ご教授お願い致します。

投稿日時 - 2012-10-11 18:40:29

QNo.7743606

すぐに回答ほしいです

質問者が選んだベストアンサー

MS-Access 2000での例。

投稿日時 - 2012-10-11 22:50:35

お礼

ご回答ありがとうございます。
早速教えて頂いたSQLを元に試してみたところうまくいきました。

ありがとうございました。

投稿日時 - 2012-10-12 09:52:43

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

サブクエリを使えばできます。
SELECT TOP 1 COUNT(A.グループ) AS C
FROM (SELECT A.ライン,A.グループ
FROM 検品テーブル AS A
GROUP BY A.ライン,A.グループ) AS A
GROUP BY A.ライン
ORDER BY COUNT(A.グループ) DESC

投稿日時 - 2012-10-11 21:30:00

お礼

ご回答ありがとうございます。
勉強不足ですみません。

上記例で、L1でもグループが3つ存在した場合、結果は1レコード抽出されますでしょうか。

実際には他にも抽出条件があり、それを踏まえて教えて頂いたSQLを試したころ3が2レコード抽出されてしまいます。
単純に私の構文に間違いがあるのかもしれませんが。。

ありがとうございました。

投稿日時 - 2012-10-12 11:24:20

あなたにオススメの質問