두 필드 곱의 합을 계산해야합니다. 평균 가중 가격으로 사용됩니다. 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 (예 => (10 진수) 전자 [ "볼륨"])? 또는 volume = grouped.Sum (e => (decimal) e [ "symbol"])을 설정하면? 여전히 캐스팅 오류가 발생합니까? –
안녕하세요, 쿼리가 단일 필드에 대해 잘 작동합니다. 그룹화 할 수 있습니다. 문제없이 eum (> = (10 진수) e [ "볼륨"]). 제가 할 수없는 것은 두 분야의 제품, 부문 또는 가치의 합을 얻는 것입니다. 그건 내가 합계 (가격 * 가격)을 얻을 수 없다는 것입니다. 단일 필드에 대해 간단한 합계, 최소 및 최대 값 이외의 계산 된 평균 및 집계 된 값에 LINQ를 사용하고 싶습니다. –