0

cost という名前の int 列を持つ、expensed という名前の SQL テーブルがあります。私のアプリケーションでは、このデータは、linq2sql 挿入で新しい行を挿入するたびに更新されるグリッドに表示されます。私がやりたいことは、行を挿入するたびにコスト列のすべてのフィールドの合計である整数変数をアプリケーションに持つことです。

挿入を行うたびにこれらのフィールドをlinq2sqlで合計する簡単な方法はありますか? 私はまだそれを学んでいないので、ラムダを避けるようにしてください。

ありがとう!

4

3 に答える 3

2

ラムダの代わりにクエリ構文を使用すると仮定すると、次のようになります。

var totalCost = (from expensesRow in dataContext.Expenses
             select expensesRow.cost)
             .Sum();

実際には次と同じです:

var totalCost = dataContext.Expenses
                  .Sum(x => x.cost);

これがLinq2SqlクラスdataContextのインスタンスです。DataContext

于 2012-04-18T04:31:59.893 に答える
1

今日はラムダを学びます。http://www.theabsent Mindcoder.com/2010/06/linq-sum.htmlにはまさにあなたが望むものがあり、非常に単純なラムダを使用してそこに到達します。合計しようとしている整数の 1 つの列だけを選択して収集するようにすれば、ラムダを使用せずに済む可能性がありますが、物事を学習しないために余分な作業を行うのはなぜでしょうか?

于 2012-04-18T00:26:04.933 に答える
0

次の構造を持つ users というテーブルがあるとします。

[Table users] -  id | username | points_awarded

次に、次のクエリを実行して、各ユーザーに付与したポイントの合計数を確認できます。

SELECT SUM(points_awarded) as total_points FROM users

また、N に等しいポイントよりも高いポイントを持っているユーザーの数をカウントすることもできます。たとえば、N = 500 とすると、次のように実行できます。

SELECT COUNT(id) as num_users_with_points FROM users WHERE points_award >= 500

チェックアウト:

http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html
http://dev.mysql.com/doc/refman/5.0/en/func-op-summary-ref.html

詳細については。

于 2012-04-18T00:22:45.107 に答える