我需要計算兩個字段的乘積之和。這將用於平均加權價格。 avgPrice = sum(price * volume)/ sum(volume)。 price1和price2都返回錯誤「指定的轉換無效」。LINQ產品聚合查詢中的兩個字段
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 =>(十進制)E [ 「音量」])?或者如果你設置volume = grouped.Sum(e =>(decimal)e [「symbol」])?你仍然得到了演員的錯誤? – 2009-09-01 16:53:55
嗨, 該查詢適用於單個字段。我可以分組.Sum(e =>(十進制)e [「音量」))沒有問題。我不能做的是從兩個領域獲得產品,部門或價值總和。那是我無法得到總和(音量*價格)。我希望使用LINQ來計算平均值和彙總值,而不是簡單的總和,最小值和最大值。 – 2009-09-01 17:49:19