
下記のようなグループ化した結果を表示するSQL文を作りました。
SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
これを実行するとちゃんと結果が出るのですが、その結果の件数を求めるにはどのようなSQL文を追加すれば宜しいのでしょうか? COUNT文を使うと出来そうなのですが、
SELECT メーカコード, COUNT(メーカコード) AS CNT FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
とやるとメーカコードの個別件数が表示されてしまいます。
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちわ。
Oracle であれば、こんな書き方ができるかと思います。
SQL> SELECT COUNT(*) FROM (SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)='BUHIN1'));
でも件数を取得するのであれば、わざわざSQL 文を発行
するよりも、SQL%ROWCOUNT (PL/SQL) や、
sqlca.sqlerrd[2] (Pro*C) を使った方が DB に余計な負荷がかからなくて
良いと思います。
この回答への補足
早速のご回答ありがとうございます!
私の使用環境は、Access97 です。
教えて頂いた SELECT COUNT(*) FROM (ぐるーぷ化のSQL) をSQL Serverに対し実行するとFROM文の誤りです、と表示されてしまいます。
Accessならクエリで段組みすれば解決しますが、将来的にSQL Serverへ接続する事を考え、SQL文のみで解決しようと思っております。
現在はレコードセット取得後、RecordCountプロパティにてデータ件数を調べています。
COUNT文を使ったほうが負荷が少ないと思ったのですがそんな事もなさそうですね・・。
No.4
- 回答日時:
AccessやSQL Serverでできるかどうかわかりませんが、
Oracleの場合は以下のようなサブクエリーを使えます。
SELECT COUNT(*) FROM (
SELECT メーカコード
FROM 部品表
GROUP BY メーカコード, 部品番号
HAVING ((部品番号)="BUHIN1")
)
ご回答ありがとうございます!急な仕事でご返答が遅くなり申し訳ありません。
Accessですと上記のSQL文は実行できませんでした。
Accessのサブクエリーの使い方を調べてみます。
どうもありがとうございました。
No.3
- 回答日時:
ちょっと思ったのですが
SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
のクエリーを作成してそのクエリーを元に集計関数を使用したクエリーを作成するのはどうでしょう?
例えば
SELECT count(メーカコード) as カウント FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
->クエリー1
select count(カウント) from クエリー1
質問のいとにそっています&スマートでないですかね...。
ご回答ありがとうございます!お返事が遅くなり申し訳ありません。
現在手元で確認できる環境ではない為実行できませんが、
Accessのサブクエリーの使い方を参考にさせていただきます。
どうもありがとうございました!
No.2
- 回答日時:
やりたいことは、
「部品番号が"BUHIN1"である部品(レコード)を持つメーカの数の抽出」
ということでよろしいでしょうか?
手元にAccessが無いので、確認できませんが、一般的には下記の様なSQLで抽出できると思います。
-----------------------------------------
SELECT count(DISTINCT メーカコード) FROM 部品表 WHERE ((部品番号)="BUHIN1");
-----------------------------------------
部品番号 = "BUHIN1" の条件はグループ化してもしなくても影響がないので、Where句でも問題ありません。
この回答への補足
ご回答ありがとうございます!
やりたいことはおっしゃる通りです。
教えて頂いたSQL文をAccess97で実行したところ、エラーになってしまいました。
試しに DISTINCT を COUNT の前に配置したところエラーは出なくなったのですが、正しい結果が出てきません。
グループ化しなくてもよい方法で再度考えてみたいと思います。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで期間指定の売上合計と...
-
SQL文のエラーについて
-
列名無効について
-
改行コードを削除して取得する...
-
フォームで検索 エラーの表示...
-
項目名の制限について
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Access テキスト型に対する指定...
-
変数が選択リストにありません
-
テーブルの存在チェックについて
-
Accessファイルを作成者以外は...
-
エクセルグラフの凡例スペース
-
SQLServer2005のSQL文での別名...
-
Accessのクエリでデータの入力...
-
日本語のテーブル名、カラム名...
-
Accessでテーブルからテーブル...
-
INSERT INTO ステートメントに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
フォームで検索 エラーの表示...
-
改行コードを削除して取得する...
-
MySQLで改行を含む文の登録のし...
-
項目名の制限について
-
ORA-01722: 数値が無効です
-
オラクルSQLの累計値取得方法に...
-
アクセスのクエリについて(前...
-
SQL文 グループ集計TOPに対する...
-
インサート文での条件の指定に...
-
Accessで期間指定の売上合計と...
-
SQL抽出方法:売上Tを集計した...
-
Accessで複数テーブルのJoin
-
SQL文のエラーについて
-
“SQL文を作るSQL”の書き方って...
-
UPDATE文を教えて頂けな...
-
【 困 】 ストアドプロシージャ
-
SQLの抽出方法について
-
列名無効について
-
Excel 2019 のピボットテーブル...
おすすめ情報