- 締切済み
アクセスのカウントの仕方
アクセス2007で行は東京*で始まる項目、列項目で数値をいれてその数値をカウントしたいのですが・・クエリでここまでは表示できるのですが、数値にあるたとえば”21”をカウントしたいときどうすればよいでしょうか。よろしくお願いします。 数値1 数値2 数値3 東京* 19 20 21 東京* 20 21 22
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
提案したSQL文の補足説明 SELECT [Q集計].[項目], [Q集計].[数値], QTemp.カウント FROM Q集計 LEFT JOIN [SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値]. AS QTemp ON [Q集計].[数値]=QTemp.数値 WHERE ((([Q集計].[項目])=[項目を入力]) And (([Q集計].[数値])=[数値を入力])) GROUP BY [Q集計].[項目], [Q集計].[数値], QTemp.カウント; は、アクセスに登録する前は、 SELECT [Q集計].[項目], [Q集計].[数値], QTemp.カウント FROM Q集計 LEFT JOIN (SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値) AS QTemp ON [Q集計].[数値]=QTemp.数値 WHERE ((([Q集計].[項目])=[項目を入力]) And (([Q集計].[数値])=[数値を入力])) GROUP BY [Q集計].[項目], [Q集計].[数値], QTemp.カウント; ですが、登録して保存するとサブクエリの部分が (SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値) から [SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値]. に書き換えられます。これはアクセスの方言として とらえてください。 ついでに、項目別の一覧は SELECT [Q集計].[項目], [Q集計].[数値], QTemp.カウント FROM Q集計 LEFT JOIN [SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値]. AS QTemp ON [Q集計].[数値]=QTemp.数値 WHERE ((([Q集計].[項目])=[項目を入力])); です。
- piroin654
- ベストアンサー率75% (692/917)
訂正です。 "存在するならばQ抽出をそのテーブル名" のところでQ抽出をQ集計とします。提示 したSQL文ではQ集計としていました。
- piroin654
- ベストアンサー率75% (692/917)
ご苦労様です。この結果を出せるクエリが 作成できるならば、たとえば 項目 数値名 数値 東京 数値1 19 大阪 数値1 16 東京 数値2 20 大阪 数値2 17 東京 数値3 21 大阪 数値3 18 東京 数値1 20 大阪 数値1 17 東京 数値2 21 大阪 数値2 18 東京 数値3 22 大阪 数値3 19 のような数値の詳細を格納したテーブル か、あるいはこのような結果を出せる 選択クエリが作れるテーブル構成になっ ていると思われます。データの順序は ばらばらでもかまいません。もしそう ならば一つのクエリで提示されたクエリも まかなえます。 上のデータを持つクエリをQ集計とします。 もしこのようなデータを持つテーブルが 存在するならばQ抽出をそのテーブル名 に置き換えてください。フィールドの 名前は項目、数値名、数値とします。 Q項目別数値別抽出 SELECT [Q集計].[項目], [Q集計].[数値], QTemp.カウント FROM Q集計 LEFT JOIN [SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値]. AS QTemp ON [Q集計].[数値]=QTemp.数値 WHERE ((([Q集計].[項目])=[項目を入力]) And (([Q集計].[数値])=[数値を入力])) GROUP BY [Q集計].[項目], [Q集計].[数値], QTemp.カウント; これを実行すると[項目を入力] と [数値を入力]というパラメータが出てきます。 それぞれに入力すると目的のカウント数が 出力されます。 このクエリの元になるのは SELECT Q集計.項目, Q集計.数値, QTemp.カウント FROM Q集計 LEFT JOIN [SELECT 数値, Count(数値) AS カウント FROM Q集計 GROUP BY 数値]. AS QTemp ON Q集計.数値 = QTemp.数値; です。これを工夫してみてください。 Q項目別数値名別数値別もつくれます。 ACCESSで上記のクエリを登録すると ときたま"FROM Q集計 GROUP BY 数値]. AS" の "."がはずれてエラーをおこすことが あります。そのときは確認してはずれて いたら付け直してください。なるべくなら SQLビューの状態で保存してください。 それと"東京*"の"*"はプログラムや クエリでも使うのでエラーの元となります。 なるべくつかわないように。 では。