Añadir Fila con valores Totales en Hoja de Datos

Estuve buscando y parece que esta función se puede hacer fácilmente en Access 2007, ¿pero mi copia de Access es la 2003 como añado una fila con valores totales en un formulario de hoja de datos?

1 Respuesta

Respuesta
1
Con access 2003 no tiene esa función activa, no obstante se puede hacer una chapucilla:
Creas una vista de la tabla que quieres agregar añadiendo un campo EsResumen.
Por ejemplo: Imagina que tenemos un tabla del estilo - Articulo, SalesQty, Sales.
Luego la vista sería - EsResumen, Articulo, SalesQty, Sales.
select *
From (select 0 as EsResumen, * from TABLA
Union all
       select 1 as EsResumen, 'Summary' Articulo, sum(salesqty) as SalesQty, sum(Sales) as Sales from TABLA
      )
Order by EsResumen
Hola experto, no me has entendido, no se si explique mal la pregunta lo que quiero es lo siguiente. Tengo una vista de una tabla así más o menos.
Insumo    Grupo1     Grupo2      Grupo3
Acero 100 200 300
Tejado 150 250 350
Tuberías 200 300 400
TOTALES 450 750 1050
Esta ultima fila es la que quiero añadir a la vista o a la hoja de datos.
Bueno lo que me explicas es podríamos decir los mismo que te he puesto.
Tu tabla esta formaca por 4 campos: Insumo, Grupo1, Grupo2, Grupo3.
Si haces un SQL de la forma siguiente : select 'Totales' as Insumo, sum(grupo1) as Grupo1, sum(grupo2) as Grupo2, sum(grupo3) as Grupo3 y lo ejecutas te dará el agregado que tu me indicabas arriba.
Como lo que quieres es que todo esto te salga dentro de una misma vista, luego el truco es añadir ese resumen a la tabla mediante una UNION. Pero como queremos que se nos orden, y saber que se trata de un agregado, luego usaremos un campo adicional (yo te indicaba el nombre de EsResumen).
Luego escribiendo la vista como
select *
from (
    select 0 as EsResumen, * from TABLA
    union
    select 1 as EsResumen, select 'Totales' as InSumo, sum(grupo1) as Grupo1, sum(grupo2) as Grupo2, sum(grupo3) as Grupo3 from TABLA
    ) as a
order by EsResumen, InSumo
el resultado sería:
EsResumen InSumo Grupo1 Grupo2 Grupo3

0 Acero 100 200 300
0 Tejado 150 250 350
0 Tuberías 200 300 400
1 Totales 450 750 1050
Ok, creo que has dado con el problema, sin embargo ejecuto lo que me dices y sale error de sintaxis.
select 'Totales' as Insumo, sum(grupo1) as Grupo1, sum(grupo2) as Grupo2, sum(grupo3) as Grupo3 FROM insumos;
Esto me sale bien, pero lo demás no, podrías ver si tienes un error de sintaxis, ¿ese pedacito donde pones "as a" esta bien?
Muchas gracias por tu colaboración.
Vale, he hecho una prueba con mi access 2000 y me sale que el problema que da es porque el nombre del alias debe de ser distinto al nombre de la tabla origen. Intenta los siguiente:
select 0 as EsResumen, InSumo, sum(grupo1) as G1, sum(grupo2) as G2, sum(grupo3) as G3
from TABLA
union
select 1 as EsResumen, select 'Totales' as InSumo, sum(grupo1) as G1, sum(grupo2) as G2, sum(grupo3) as G3 from TABLA
order by EsResumen, InSumo
Si que eres un experto, me has salvado de un problema, no sabia que estas cosas se podían hacer en access de hecho creo que poca gente, muchísimas gracias, saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas