- - PR -
DataViewのRowFilterを使用して、SUMやCOUNTなどの集計関数を利用する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-27 11:10
いつもお世話になります。現在ASP.NET(VB2005)の開発を行っています。
DataViewのRowFilterを使用してSUMやCOUNTを取得したいのですが、エラーになり取得することができません。 myDataTable(DataTable)の金額の合計を得たり、件数を得たりしたいのですが、やり方が分かりません。 次のようなコードを書いたのですが、「フィルタ式'SUM(金額)'はBoolean型に対して評価しません。」というエラーになってしまいます。
myDataTable(DataTable)の金額列はInt32型でありBoolean型ではないのに、なぜこのようなエラーが出てしまうのでしょうか? RowFilterで合計や件数を取得する方法をよろしくご教授下さい。 | ||||||||
|
投稿日時: 2008-03-27 11:44
RowFilterは、行のフィルタ条件を指定するためのプロパティです。
真偽で判断できる式でないといけないので、"SUM(金額)"だとエラーになったわけです。 例えばこのように書けばエラーにはならなくなります。…あまり意味はありませんが。
myTableの金額の合計値を求めるのであれば、
のようにすると、"合計金額"という列には金額の合計が入ります。件数についても同様です。 ※myTableのすべての行で同じ値が入ることになります。 | ||||||||
|
投稿日時: 2008-03-27 11:47
DataViewのRowFilterは文字通り行にフィルタをかける為のものなので
その様な記述は出来ませんね。(SQLのWHERE句に当たる部分のみ設定できる) お望みの値は DataTableのComputeメソッドで取得できると思います。 | ||||||||
|
投稿日時: 2008-03-27 12:23
知らなかった…今までずっと自分が書いた方法で取得していましたorz | ||||||||
|
投稿日時: 2008-03-27 13:21
rainさん、Hsさん大変参考になりました。
二人のおかげでやりたいことができました。 本当にありがとうございました。 |
1