Pregunta

Estoy tratando de obtener el P & L promedio en una columna.La columna es de tipo doble, sin embargo, sigo recibiendo un error al decir lo siguiente:

Información adicional: Error de sintaxis en el argumento agregado: esperando un argumento de una sola columna con el posible calificador 'niño'.

Esto ocurre cuando esta línea está ejecutando:

avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");

Además, aquí hay algunos código adicional para aclarar:

dt.Columns.Add(Columns.FiveSecBeforePnL, typeof(double));

foreach(DataRow row in dt.Rows)
{
  row[Columns.FiveSecBeforePnL] = some value;
}

double avgFiveSbefore;
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");

¿Fue útil?

Solución

Intente encerrar el nombre de la columna en corchetes.

avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");

También puede usar LINQ para hacer lo mismo como:

double avgFiveSbefore = dt.AsEnumerable()
                            .Average(r =>
                                r.Field<double>(Columns.FiveSecBeforePnL));

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top