SQL - Seleccionar una columna de varias tablas.

 
Vista:

Seleccionar una columna de varias tablas.

Publicado por Angel Huerta (22 intervenciones) el 29/06/2004 00:57:05
Qué tal! Tengo una BD con varias tablas que tienen los mismos campos, los tres que necesito en esta consulta son Material, Categoría (del material) y toneladas En la consulta tengo que obtener los totales de todas las categorías de todas las tablas. Con una tabla es fácil, con un "grupo by", pero no se cómo hacerle para sumar todas las tablas. Pongo el código para una sola tabla.

SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
GROUP BY Categoría

De antemanao, Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Seleccionar una columna de varias tablas.

Publicado por Isaías Islas (5072 intervenciones) el 29/06/2004 18:21:46
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
UNION
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
UNION
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
GROUP BY Categoría
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccionar una columna de varias tablas.

Publicado por Isaías Islas (5072 intervenciones) el 29/06/2004 18:21:57
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
UNION
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
UNION
SELECT Categoría, Sum(Toneladas) AS Toneladas
FROM nombreTabla
GROUP BY Categoría
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccionar una columna de varias tablas.

Publicado por Angel huerta (22 intervenciones) el 29/06/2004 19:46:00
Gracias por la respuesta, Isaias. Pero si lo hago así, me marca el error:

"Column is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause."

Por lo que le agregué el "Group By" a cada "Select", el detalle es que si en las tablas existe la misma categoría, en la tabla de resultado me aparece repetido (no agrupa los resultados) .
Por ejemplo si en 3 tablas existe la categoría "XXXXX", en la tabla de resultados aparece 3 veces la categoría "XXXXX".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Encontré la solución

Publicado por Angel Huerta (22 intervenciones) el 30/06/2004 20:03:23
Lo que hice fue crear una tabla temporal en la que vació la consulta con los resultados de las otras tablas, y luego habo una consulta sobre esa tabla tempora. Pongo el código.

Create Table #tmp (
[Categoria] [varchar] (10) NULL ,
[Toneladas] [float] NULL
)
go

Insert #tmp
select Categoria, sum(Toneladas) as Toneladas from [NombreTabla] group by Categoria
union
select Categoria, sum(Toneladas) as Toneladas from [NombreTabla] group by Categoria
go

Select Categoria, sum(Toneladas) as Toneladas
FROM #tmp
group by Categoria
go
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar