Ayuda con Access

Estoy haciendo un group by a una tabla de access:
string Query_Agrupar = @"select Fecha, Medio" + Agrupacion + @", sum(Tarifa1),
                                    sum(Tarifa2)) from [Pivot] group by Fecha, Medio" + Agrupacion;
DataTable Tabla = new DataTable();
using (OleDbConnection cnn_Agrupar = new OleDbConnection(Program.Conexion))
{
      OleDbDataAdapter Adapter = new OleDbDataAdapter(Query_Agrupar, cnn_Agrupar);
      cnn_Agrupar.Open();
       Adapter.Fill(Tabla);
}
Lo que quiero es que me devuelva el nombre del campo "Tarifa1" y "Tarifa2" porque en este momento me devuelve con los nombresde "EXPR1001" y "EXPR1002", los otros campos si me traen su nombre respectivo.
Quise hacer :
string Query_Agrupar = @"select Fecha, Medio" + Agrupacion + @", Tarifa1 = sum(Tarifa1), Tarifa2 = sum(Tarifa2)) from [Pivot] group by Fecha, Medio" + Agrupacion;
Pero sale error, que estoy haciendo mal.
3

3 respuestas

Respuesta
1
Es simple, con un alias lo soluciones:
string Query_Agrupar = @"select Fecha, Medio" + Agrupacion + @", sum(Tarifa1) AS Tarifa1,sum(Tarifa2) AS Tarifa2) from [Pivot] group by Fecha, Medio" + Agrupacion;
Respuesta
1
Te aparece EXPR1001 en lugar de Tarifa1 porque no estás pidiendo realmente la columna Tarifa1 sino que estás calculando una expersión (la suma, sum(Tarifa1)). Creo que puedes darle un nombre más descriptivo usando "As", por ejemplo, sum(Tarifa1) as miSuma.
Respuesta
1
Para ponerle un nombre y que no te saque el campo como expr1001, etc tienes que hacer lo siguiente
En todos los tipos de campos que son sum(), avg(), max(campo), etc te va a poner eso de expr..., se lo resuelve poniendo el as nombrecampo
sum(Tarifa1) AS TARIFA1, sum(Tarifa2) AS TARIFA2)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas