2つのフィールドの積の和を計算する必要があります。これは平均加重平均価格に使用されます。 avgPrice =合計(価格*ボリューム)/合計(ボリューム)。 price1とprice2の両方がエラー "指定されたキャストは無効です。"LINQ集計クエリの2つのフィールドの積
var result3 = from sym in dataTableAsEnumerable()
group sym by new { symbol = sym["symbol"] } into grouped
select new
{
// SYMBOL = sym.Field<string>("symbolCAN"),
SYMBOL = grouped.Key.symbol,
tradeTimeMin = grouped.Min(e => e["tradeTimeMin"]),
tradeTimeMax = grouped.Max(e => e["tradeTimeMax"]),
volume = grouped.Sum(e => (int)e["volume"]),
price1 = grouped.Sum(e => (double)e["volume"] * (double)e["symbol"])/grouped.Sum(e => (double)e["volume"]),
price2 = grouped.Sum(e => (e.Field<decimal>("volume") * e.Field<decimal>("symbol")))
};
= grouped.Sum(E =>(10進数)E [ "ボリューム"])?またはvolume = grouped.Sum(e =>(10進)e ["symbol"])を設定した場合はどうなりますか?まだキャストエラーが出ますか? –
こんにちは クエリは1つのフィールドに対してうまく機能します。私はグループ化することができます.Sum(e =>(10進)e ["volume"])問題なし。私ができないことは、2つのフィールドから商品、部門、または価値の合計を得ることです。それは私が合計(ボリューム*価格)を得ることはできません。私はLINQを計算した平均値と、単一フィールド上の単純な合計、最小値および最大値以外の集計値に使用したいと考えています。 –