複数のテーブルよりデータを抽出しClientDataSetに登録して
その内容をあるキーで集計したいのですが、
SQLで言うところの
select key, sum(data) from Table group by key
のTable部分をClientDataSetを使って実行するのは可能でしょうか?
これで意味が通じるかなぁ?
的外れな回答かもしれませんがとりあえず今やってる方法を。
①オブジェクトツリーでClientDataSetを選択し、その中のFieldsで
右クリック→全ての項目追加で項目を追加する。
②同じくFieldsで右クリック→項目の新規作成を選択。
型:Aggregate、項目の種類:集合体、名前:適当(仮にSUM_KINGAKとする)
③作成したフィールド(SUM_KINGAK)を選択しプロパティを変更する。
Active : True、Expression:SUM(KINGAK)←KINGAKというフィールドを集計する場合
もっとスマートな方法がありそうですがとりあえずこれで集計はできるのではないかと思います。
外していたらごめんなさい_(._.)_
通りすがおさん
レスありがとうございます
どーもうまくいきませんねぇ
それで
Tableを使ってキャッシュに一時保存してそれをSQL文で集計しようと思ったんですがどうも無理みたいです
なにか良い策はないですかねぇ?
すいません、記述忘れがありました。
ClientDataSetのAggregatesActiveプロパティをTrueに変える必要があります。
最近このClientDataSetを使い始めたのでまだまだ勉強中なのですが、
これで抽出したデータの合計を取得することができているようです。
この合計はClientDataSetのすべての合計なんでしょうか?
それともキーでGroup byされた合計なんでしょうか?
掲示した内容だとClientDataSetにあるデータ全てですね。
どうやらぺんぺんさんのお望みのものとは違うようです、申し訳ありません。
>>複数のテーブルよりデータを抽出
の段階でグループ化してその結果をClientDataSetni登録してはだめなのでしょうか?
文章の理解力がなくて申し訳ありません(TдT)
通りすがりさん
ありがとうございます。
その段階ではちょっと無理なんです。
複数のテーブルで抽出条件が違うので。。。。。
一旦解決して上記のキャッシュについて再度質問してみます
何か良い情報がありましたらお知らせください。m(_ _)m
ツイート | ![]() |