PDA

Ver la Versión Completa : Consulta Tabulada


frholguin
10-02-2012, 15:09:05
Buenos dias,
Estoy tratando de hacer una herramiento en mi empresa para generar unos reportes pero tengo el siguiente inconveniente. y es que tengo la siguiente sentencia.
select t606.FECHACOMP, sum(t606.MONTOFACTURADO) from t606 where t606.TIPOBIENYSERVICIO = '09 -COMPRAS Y GASTOS QUE FORMA'
GROUP BY t606.FECHACOMP
UNION
select t606.FECHACOMP, sum(t606.MONTOFACTURADO) from t606 where t606.TIPOBIENYSERVICIO = '02-GASTOS POR TRABAJOS, SUMINI'
GROUP BY t606.FECHACOMP

y el resultado es asi.
201001 31500 Este resultado pertenece a la primera consulta
201001 17000 Este resultado pertenece a la segunda consulta.

pero quiero que la informacion me salga asi.

201001 201001
31500 17000
Alguien podria ayudar.

gracias.

Casimiro Notevi
10-02-2012, 16:56:11
Haz una búsqueda por "pivot"

oscarac
10-02-2012, 17:41:14
Haz una búsqueda por "pivot"

pense en pivot tambien (aunque no menciona la base de datos.. en SQL no hay pivot)
pero si te das cuenta lo que frholguin quiere no se ajusta al pivot, el esta tratando de colocar el dato repetitivo en cada columna y debajo de ellas un detalle

salvo que no se haya explicado bien y que cada columna represente un mes

rjtostado
10-02-2012, 18:09:36
Hola en lo personal creo una tabla temporal en la que lleno la informacion en el orden que quiero..
o si lo quieres un sql mas grande..

select sum(va1) as va1,sum(va2).. sum(va3)
from ( select decode(tipo,1,val,0) as va1,decode(tipo,2,val,0) as va2,... decode(tipo,x,val,0) as vax
from ( select 1 tipo, 1200 val from dual
union all
select 2 tipo, 1500 val from dual
)
)


espero y te sea de ayuda..

Casimiro Notevi
10-02-2012, 18:13:39
Por favor, rjtostado, recuerda encerrar el código entre sus etiquetas oportunas, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


.

frholguin
10-02-2012, 20:03:20
No entiendo nada de lo que pones en el codigo. yo lo que quiero es: Lo voy a poner en forma logia a ver si es mas entendible.
Tengo una tabla con los campos A: B: C:
A:= Fecha1 Fecha1 Fecha1
B:=Categoria1, Categoria2, Categoria3
C:= 10000 30000 50000
20000 40000 60000
en la consulta lo que va a hacer la diferencia es el WHERE que es donde pongo la categoria para que me sume todo lo que esta ahi. Entonces me sale la informacion de la siguiente manera.
Fecha1: Categoria1 30000
Fecha1: Categoria2 70000
Fecha1: Categoria3 110000

Como quiero que salgan es:
Categoria1 Categoria2 Categoria3
Fecha1 30000 70000 110000
Espero asi se entienda mejor.

gracias.

fjcg02
11-02-2012, 15:33:07
Todo tuyo.

La procedure te devuelve una cadena con la sentencia construida. Luego tú la tienes que ejecutar.

Un saludo