SQLite3の問い合わせ結果を得るには

解決


nick  2012-06-11 19:54:52  No: 42462

こんにちは。
SQLite3の使い方を試しています。
例えば次のような問い合わせについて
select category, count(*) from goods group by category;

このように取り出したいのですが、
--------------
自転車    2
野球      4
http://www.dbonline.jp/sqlite/function/index1.html

項目とその項目ごとの数量を得る方法を教えたいただきたい。
よろしくお願いします。

procedure TForm1.SelectMember;
var sltb: TSQLiteTable;

begin
sltb := SLDB.GetTable('select category, count(*) from goods group by category');

 while sltb.Row < sltb.RowCount do begin
   Memo1.Lines.Add(sltb.FieldAsString(sltb.FieldIndex['category']));
   Memo1.Lines.Add(inttostr(sltb.Count));//全数?が表示される
   sltb.Next;
    end;
  end;
end;


igy  2012-06-11 20:28:37  No: 42463

試していませんが、

count(*)

の後ろに " AS cnt"
を付けて

Memo1.Lines.Add(sltb.FieldAsString(sltb.FieldIndex['cnt']));

とかすると、どうなりますか?


nick  2012-06-11 21:08:09  No: 42464

>とかすると、どうなりますか?
お蔭様でうまく取り出せました。

まだサンプルを動かしてみる程度の能力しかなく、
複雑な問い合わせ結果や関数の結果は如何するのかと、何日か考えていました。
SQLite3に用意されている関数は沢山あるのですが、教えていただいた応用で取り出せるのでしょうね。
igyさん、どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加