• ベストアンサー

SQL文のCOUNTの戻り値は?

はじめてSQLで関数を使用するのですが、テーブルの行数を知る COUNT関数で戻り値をどのように取得するのでしょうか? VBの変数に代入したいのですが・・・ 調べては見たのですがサンプルのプログラムなどが見つかりませんでした。 よろしくお願いします。 ADOを使用しています。

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

  • ベストアンサー
  • karon24
  • ベストアンサー率40% (8/20)
回答No.1

VB上でSQL文を使用する方法自体はご存知ですか? 通常のSQLが使用できるのであれば、 以下のSQL文で行数は取得できます。 SELECT COUNT(*) FROM テーブル名 です。

masa00
質問者

お礼

すばやい返答ありがとうございました。 うまく質問ができなっかたみたいで申し訳ありませんでした。 以前はデータの所得で strAAA = レコード.Fields("******").Value で所得できたのを単純に ("******") を (0) に変えれば いいことが解りました。単純な答えだったかもしれませんが まだまだ初心者の私では悩んでしまいました。 しかしすばやい返答には助かりました。 本当にありがとうございました。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 ADOでレコードセットを作成するなら、レコード件数は、RecordCountプロパティで取得出来ます。 SQL文の場合は、No.1の方のとおりです。 なお、VBでデータベースを扱うことについて載っているサイトを紹介しておきます。 ついでにSQLのサイトも。 http://homepage2.nifty.com/inform/vbdb/ http://www.rfs.jp/sitebuilder/sql/

参考URL:
http://homepage2.nifty.com/inform/vbdb/,http://www.rfs.jp/sitebuilder/sql/
masa00
質問者

お礼

すばやい返答ありがとうございます。 サイトをみながらNo.1の方のお礼の内容がわかりました。 今はうまく結果がでました。 本当にありがとうございました。

masa00
質問者

補足

そういえば以前も回答して頂いたみたいですね。 「テキストボックスでの右クリックのメニューを無効にしたい」 の質問で もし違っていたら申し訳ありません。 多分同一人物だと思うので前回も今回も大変ありがとうございます。

noname#3345
noname#3345
回答No.2

#1の方のおっしゃる通りです。 カウントしたカラムに別名をつけたいという意味であれば、 SELECT COUNT(*) as DataCnt FROM テーブル名 等とすれば、DataCntというカラム名でカウント数が参照できます。

masa00
質問者

お礼

すばやい返答ありがとうございます。 SELECT COUNT(*) as DataCnt で参照できるのは知りませんでした これからやってみたいと思います。

関連するQ&A

  • 動的SQLのCOUNTのとり方

    動的SQLで、DBの件数を取得したいのですが、 うまく取得できず困っています。 教えてください! 以下の様に、記述しているのですが取り方間違っていますか? EXEC SQL EXECUTE statment INTO :CNTNUM; PREPEAした、statmentには SELECT COUNT(*) FROM テーブル名 where kbn = 3; と、ごくごく普通のSELECT COUNT文です。 cnt_numは、int型のホスト変数で宣言しています。 デバックしながら実行すると、cnt_numの値は初期化した時の 0のままです。実際取得した件数が0件なのかもと思い 初期化時に3を代入して実行したら、やはり値は3でした。 なので、件数が取得出来ていないようです。 オラクルエラーにもならず、次の処理へ流れていってしまいます。 知っている方、教えてください。

  • COUNT(*)の使い方

    COUNT(*)の使い方が分からないので質問します。 直接のSQLでCOUNT(*)を使ってレコード数を表示させることはできましたが PHPでのSQLではCOUNT(*)をPHPのソースの変数に代入する方法が分かりません。 $sql = 'SELECT ip, COUNT(*) FROM webdb'; $ret = mysql_query($sql); $rowval = mysql_fetch_row($ret); この場合、$rowval[1] がテーブルwebdbのレコード数だと 思いましたが、間違っているところはございませんか?

    • ベストアンサー
    • MySQL
  • SQLでのCOUNT関数の使い方

    表A           表B 商品ID 数量 価格    商品ID 商品名  ------ ---- ----    ------ ------ 0001   10 1000    0001  万年筆 0002   50 200     0002  ボールペン 0003   25 600     0003  シャーペン 0004   150 2000    0004  文房具セット 0005   20 420     0005  ノート SELECT 数量,価格,商品名,商品ID FROM 表A,表B WHERE 表A.商品ID = 表B.商品ID とやると恐らくこんなような表ができると思います。 商品ID 数量 価格 商品名  ------ ---- ---- ------ 0001  10   1000 万年筆 0002  50   200 ボールペン 0003  25   600 シャーペン 0004  150  2000 文房具セット 0005  20   420 ノート ここで、表の行数を6で割ったときの余りの数を表に追加して全体の行数を6の倍数にしたいと思っています。 (ID 0006として空行を追加) しかし、この表の行数を取得するためにCOUNT関数を使うと思うのですが、使い方が分かりません。 COUNT関数を使うにはGROUP BY句とHAVING句を扱うらしいのですがSELECT句にある列名全部をGROUP BY句に入れないといけないらしく思ったとおりのことが出来ません。 上記のSQLとCOUNT関数を1つのSQLで表の作成と行の行数を得たいと思っています。(ここでは、5行なので5という値を取得したい。) また、最後にどうやって空行を追加すれば良いかも分かりません。 具体的なSQLのソースなど、どなたか分かりましたら、教えてください。

  • count(*)で取得した値をJAVAの変数に代入するには?

    SQLの話なんですが、 count(*)で取得した値をJAVAの変数に代入するには?

    • ベストアンサー
    • Java
  • countとdistinctを使ったSQL文ついて

    countとdistinctを使ったSQL文について VB2005+SQLSERVER2005で開発を行っています。 distinctとcountを組み合わせて抽出するようなSQL文になるのかなと思うのですが うまくいきません カラム maker:メーカ名が登録されている テーブル shohin カラムmakerの実際のデータ例 富士通 NEC 東芝 パナソニック NEC NEC パナソニック 抽出した結果の例 富士通    1 NEC     3 東芝     1 パナソニック 2 メーカー名とその件数が出力結果となります 以上ですがわかる方いらっしゃいましたらご回答お願いいたします。

  • 抽出した行数を変数に入れたい(オラクルSQL)

    SELECTで抽出した行数を変数に格納したいのですが、上手くいきません。 SQLにあまり経験がなく、ネットで調べながら実践しております。 例えば以下の簡単なSQLを作ったとして、 ---------------------------------------------------- SELECT a,b,c,d,e,f FROM table WHERE c=10 AND e=20; ---------------------------------------------------- ここで抽出した行数を取得し、それを変数に入れたいと思っております。 というのも、後々、抽出したデータの行数を表示したい場合に SELECT COUNT(*) FROM table WHERE c=10 AND e=20; というSQLをその都度入力していては非効率だと思ったからです。 そこで抽出する際に行数を取得し、それを変数に格納して、 行数を表示する処理が今後必要になった際に、その変数を表示すれば良いと考えました。 ですがネットで変数のことを調べた際に VARやDEFINE等のコマンドを見つけましたが、SQLを実行しても上手くいきません。 最初に記載したSQLに、どのような構文を入れたら良いのでしょうか。

  • SQL文 複数条件の場合の書き方

    初めて質問します。 下記のようなデータが存在します。 テーブルA NO DATE GYO 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 3 2010/12/02 1 <= 4 2010/12/03 1 4 2010/12/03 2 上記データにて、<=の行の値を取得し変数へ代入したとします。 変数.NO =3 変数.日付 =2010/12/02 変数.GYO =1 上記、変数を元に1件前のレコードを抽出したいのですが SQL文でのいい方法がわかりません。 取得したいレコード 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 どうかお願いいたします。

  • SQL文で・・・

    こんにんちは。ご多忙だと思いますが回答宜しくお願い致します。 今、VBのソースを見ているのですが(VB初心者)、SQL文を作成している 部分があるのですが、ちょっとわかりません。 w_st_sql = "SELECT * FROM AAAA WHERE (K1 || K2 || K3) = " & "'" & p_st_key & "'" 上記のソースは(自分なりに解析したんですが)、テーブルAAAAのレコードで 変数p_st_keyの値がフィールドK1, K2, K3のどれかに当てはまるすべてのフィールドを取得する考えでよろしいのでしょうか? わからない部分は"(K1 || K2 || K3)"です。 すごく簡単な事かもしれませんが宜しくお願い致します。

  • MySQL: 複数テーブルのcount

    複数テーブルの総行数(count値)を取得したいのですが、下記だとテーブルA,B,Cの結果が バラバラに出力されてしまいます。 【入力条件】 mysql> select COUNT(*) AS 列ID from テーブルA      union all      select COUNT(*) AS 列ID from テーブルB      union all      select COUNT(*) AS 列ID from テーブルC; 【出力結果】       +-----+       | 列_ID |       +-----+       |  1  | ←テーブルAの合計:行数       |  2  | ←テーブルBの合計:行数       |  3  | ←テーブルCの合計:行数       +-----+ 総行数:6を一発で取得するには、どのようにしたらよろしいのでしょうか? 大変恐縮ですが、ご教授よろしくお願いいたいます。 <<MySQLのverは5,5です。

    • ベストアンサー
    • MySQL
  • 戻り値がクラスオブジェクト

    VB初心者でわからないので教えてください。 ある関数を呼び出して戻り値を取得するのですが、その戻り値がクラスオブジェクトとなっています。いろいろ調べてみましたが、いい結果にヒットしなかったので今回質問してみました。 言語はVB6.0です Function 関数A(A as String, B as String) dim C as Class1 set C = new Class1 Class1で宣言された変数に値を入れる処理     関数A = C end Function イメージはこんな感じです。 すみませんが解決策を教えてください。。。。