質問します。TDBChartを使用しているのですが、文字型のデータの件数を表示したいと思っています。ただ、TDBChartは基本的にnumber型でないとXまたはY軸にプロパティで設定できないようなのですが、その文字型(項目には満足・普通・不満足のようなデータが入っています。つまりto_number関数が使えません)をカウントして件数を表示することはできないのでしょうか?
また、プログラムコードで、X軸とY軸に入れる値を設定できるほうほうをご存知でしたら、教えていただけないでしょうか?
お伝えするのを忘れていましたが、versionはdelphi5です。
まず、DBChartの使い方と、望みの集計値を得る方法、この二つは分けて考えてください。
関数やSQL文を使って、望みの集計値を得ることはできているのでしょうか。
それができていないと先に進めません。
テーブルレイアウトやデータの中身が知らないのでサンプルとして見てください。あとマルチバイト文字は使えないかも?
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
ありがとうございます。そうなると、集計用のテーブルを1つ作って、そこにデータを登録し、それからTDBChartのプロパティのクエリでそこからデータを持ってくれば良いということでしょうか?
>集計用のテーブルを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で表示した方が楽かも知れませんよ。
勉強になりました。どうもありがとうございました。
ツイート | ![]() |