Inicio > Bases de datos > mristol > Añadir Fila con valores Totales en Hoja de Datos

Añadir Fila con valores Totales en Hoja de Datos

Experto:
Usuario:
Fecha: 15/05/2008
Valoración: (5,00 sobre 5) Categoría: Bases de datos
11/05/2008
diego4serve, usuario preguntando en Bases de datos
Usuario
Estuve buscando y parece que esta funcion se puede hacer facilmente 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? Muchas Gracias.
11/05/2008
diego4serve, experto respondiendo en Bases de datos
Experto
Con access 2003 no tiene esa función activa, no obstante se puede hacer una chapuzilla:
Creas una vista de la tabla que kieres 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
12/05/2008
diego4serve, usuario preguntando en Bases de datos
Usuario
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 asi mas o menos.

Insumo    Grupo1     Grupo2      Grupo3
Acero          100           200           300
Tejado        150           250           350
Tuberias      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.
12/05/2008
diego4serve, experto respondiendo en Bases de datos
Experto
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
12/05/2008
diego4serve, usuario preguntando en Bases de datos
Usuario
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 demas no, podrias ver si tienes un error de sintaxis, ese pedacito donde pones "as a" esta bien?
Muchas gracias por tu colaboracion.
12/05/2008
diego4serve, experto respondiendo en Bases de datos
Experto
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
15/05/2008
diego4serve, usuario preguntando en Bases de datos
Usuario
Si que eres un experto, me has salvado de un problema, no sabia que estas cosas se podian hacer en acces de hecho creo que poca gente, muchisimas gracias, saludos
Enlaces patrocinados