TDBChart文字型データ

解決


liton  2010-02-09 16:23:19  No: 37496

質問します。TDBChartを使用しているのですが、文字型のデータの件数を表示したいと思っています。ただ、TDBChartは基本的にnumber型でないとXまたはY軸にプロパティで設定できないようなのですが、その文字型(項目には満足・普通・不満足のようなデータが入っています。つまりto_number関数が使えません)をカウントして件数を表示することはできないのでしょうか?
また、プログラムコードで、X軸とY軸に入れる値を設定できるほうほうをご存知でしたら、教えていただけないでしょうか?


liton  2010-02-09 16:24:18  No: 37497

お伝えするのを忘れていましたが、versionはdelphi5です。


Kenny  2010-02-09 17:17:48  No: 37498

まず、DBChartの使い方と、望みの集計値を得る方法、この二つは分けて考えてください。
関数やSQL文を使って、望みの集計値を得ることはできているのでしょうか。
それができていないと先に進めません。


Ru  2010-02-10 02:57:10  No: 37499

テーブルレイアウトやデータの中身が知らないのでサンプルとして見てください。あとマルチバイト文字は使えないかも?

SELECT
  SUM(CASE WHEN Field1 = '満足' THEN 1 ELSE 0 END) AS A,
  SUM(CASE WHEN Field1 = '普通' THEN 1 ELSE 0 END) AS B,
  SUM(CASE WHEN Field1 = '不満足' THEN 1 ELSE 0 END) AS C

FROM
  TABLE1


liton  2010-02-10 03:30:17  No: 37500

ありがとうございます。そうなると、集計用のテーブルを1つ作って、そこにデータを登録し、それからTDBChartのプロパティのクエリでそこからデータを持ってくれば良いということでしょうか?


Kenny  2010-02-10 09:02:40  No: 37501

>集計用のテーブルを1つ作って、、そこにデータを登録し
いえ、問い合わせだけで良いと思うのですが、SQL専門用語はよく知らないのでそこはお許しを。
データーベースの詳細が分からないので一般論ですが、TDBChartに限らず、問い合わせが適切に
行われていれば、その結果はDBコンポーネントに自動的に反映されます。
TDBGridならば、データセットを開けば、項目が自動的に反映されたグリッドが表示されますし、
TDBChartなら、Seriesのデータ選択コンボボックスに項目が選択肢として現れます。
どうしても分かりにくいようでしたら、まずDBGridを使用してSQL文を確認してはどうでしょう。
DBGridなら、望みの結果を表示するSQL文が書けているかどうかすぐに確認できます。
望みの集計結果を表示するSQL文ができてから、TDBChartを設計した方が理解が早いと思います。
また、問い合わせとTDBChartのリンクがうまくできないのなら、問い合わせ結果を変数に代入して、
TChartで表示するという方法もあります。
TChartと比べるとTDBChartはデーターベースに特化した分だけ、自動的に処理してくれる部分が
多いのですが、逆にその自動化が手に負えないという面もあります。
X軸Y軸を自由にさわりたい、というのであれば、TDBChartを使ってSQLで苦労するよりも、
TChartのXValue、YValue、ValueSourceで表示した方が楽かも知れませんよ。


liton  2010-02-21 08:35:53  No: 37502

勉強になりました。どうもありがとうございました。


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

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






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