- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2010のSQLを使ったレコードカウント方法)
VB2010のSQLを使ったレコードカウント方法
このQ&Aのポイント
- VB2010にて他のシステムから出力したCSVファイルにアクセスして集計を行おうとしています。
- 重複を排除したカウントを得たいのですがうまくいきません。
- SQLの書き方に問題があるようですが、具体的なエラーメッセージが表示されていません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
NO2です 間違いがありました。 --- SELECT COUNT(物品ID) as 物品数 FROM (SELECT DISTINCT 物品ID FROM テーブル名) GROUP BY 物品ID
その他の回答 (3)
- yamada_g
- ベストアンサー率68% (258/374)
回答No.3
物品IDの種類の数ということですよね。 DBMSによっては(2)の書き方でも大丈夫なのですが、 ダメなのであれば(1)の結果をカウントすればいいと思います。 SELECT COUNT(*) AS 物品数 FROM (SELECT DISTINCT 物品ID FROM ・・・) としたらどうでしょうか。
質問者
お礼
>>DBMSによっては(2)の書き方でも大丈夫なのですが、 ネット・書籍を調べるとそうみたいですが、今回はダメなようです。 最近サブクエリを覚えたばかりなので中々難しいですね。 その分面白くもあるんですけどね(笑) ありがとうございます。
- o_chi_chi
- ベストアンサー率45% (131/287)
回答No.2
物品IDが重複しているということなら まず重複をなくしてから集約すればOK SELECT DISTINCT 物品ID AS 物品数 FROM テーブル名 これをテーブルとして SELECT COUNT(物品ID) as 件数 FROM (SELECT DISTINCT 物品ID AS 物品数 FROM テーブル名) GROUP BY 物品ID
質問者
お礼
なるほど!! サブクエリを使ったらいいんですね。 参考になりました。
- utakataXEX
- ベストアンサー率69% (711/1018)
回答No.1
物品ID単位の件数と言う事であれば、こうなると思います。 ↓ SQL = "SELECT 物品ID, COUNT(物品ID) AS 物品数 FROM CSV名 GROUP BY 物品ID"
質問者
お礼
ありがとうございます。 参考になりました。
お礼
細かな回答ありがとうございます。 大変分かりやすかったです。