Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problema con Select

Estas en el tema de Problema con Select en el foro de Oracle en Foros del Web. Si alguien me puede ayudar a unir los siguientes select para que entregue 1 fila con resultados. La idea es obtener algo como Año/mes CodigoPunto ...
  #1 (permalink)  
Antiguo 08/10/2009, 16:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con Select

Si alguien me puede ayudar a unir los siguientes select para que entregue 1 fila con resultados.

La idea es obtener algo como

Año/mes CodigoPunto GlosaPunto Aceptados Anulados Operac99
Enero 01 Punto01 100 0 10
Enero 02 Punto02 200 20 15
Febrero 01 Punto01 50 1 2
Febrero 02 Punto02 80 10 30
Febrero 03 Punto03 100 20 5
etc

Este query entrega un resultado de documentos Aceptados.

select to_char(a.fecha,'yyyy/mm') "Año/Mes",a.codigo_punto "Punto",b.glosa_punto "Glosa",count(*) "Cantidad"
from documento a,punto_control b
where a.fecha between to_date('01012008','ddmmyyyy')
and to_date('31082009','ddmmyyyy')
and a.Estado_documento <>'N'
and a.codigo_punto=b.codigo_punto
and a.documento_tipo in ('101','102','151','152','200')
group by to_char(a.fecha,'yyyy/mm'),a.codigo_punto,b.glosa_punto
order by to_char(a.fecha,'yyyy/mm')


Este query entrega un resultado de documentos Anulados.

select to_char(a.fecha,'yyyy/mm') "Año/Mes",a.codigo_punto "Punto",b.glosa_punto "Glosa",count(*) "Cantidad"
from documento a,punto_control b
where a.fecha between to_date('01012008','ddmmyyyy')
and to_date('31082009','ddmmyyyy')
and a.Estado_documento ='N'
and a.codigo_punto=b.codigo_punto
and a.documento_tipo in ('101','102','151','152','200')
group by to_char(a.fecha,'yyyy/mm'),a.codigo_punto,b.glosa_punto
order by to_char(a.fecha,'yyyy/mm')

Este query entrega un resultado de documentos en Codigo Operacion 99.

select to_char(a.fecha,'yyyy/mm') "Año/Mes",a.codigo_punto "Punto",b.glosa_punto "Glosa",count(*) "Cantidad"
from documento a,punto_control b
where a.fecha between to_date('01012008','ddmmyyyy')
and to_date('31082009','ddmmyyyy')
and a.codigo_operacion='99'
and a.codigo_punto=b.codigo_punto
and a.documento_tipo in ('101','102','151','152','200')
group by to_char(a.fecha,'yyyy/mm'),a.codigo_punto,b.glosa_punto
order by to_char(a.fecha,'yyyy/mm')

Si alguien me puede ayudar, desde ya se lo agradezco mucho.
  #2 (permalink)  
Antiguo 09/10/2009, 11:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con Select

Los 3 querys mencionados en forma independiente funcionan bien.

y el resultado por cada uno de ellos es mas o menos asi:

Primer Query:

Año/Mes Punto Glosa Cantidad Aceptados
2008/01 3 Factura 200
2008/01 7 NC 110
2008/01 10 OTR 1
2008/01 14 GHHG 119
2008/02 3 Factura 48
2008/02 7 NC 10
2008/02 10 OTR 11
2008/02 14 GHHG 31

Segundo Query:

Año/Mes Punto Glosa Cantidad Anulados
2008/01 3 Factura 5
2008/01 7 NC 3
2008/01 14 GHHG 19
2008/02 3 Factura 20
2008/02 7 NC 1
2008/02 10 OTR 2
2008/02 14 GHHG 1

Tercer Query:

Año/Mes Punto Glosa Cantidad Codigo99
2008/01 7 NC 3
2008/02 10 OTR 1

La idea es hacer un solo query que entre la mezcla de estos 3 resultados en 1 sola tabla,
sería como sigue:

Año/Mes Punto Glosa Aceptados Anulados Codigo99
2008/01 3 Factura 200 5 0
2008/01 7 NC 110 3 3
2008/01 10 OTR 1 0 0
2008/01 14 GHHG 119 19 0
2008/02 3 Factura 48 20 0
2008/02 7 NC 10 1 0
2008/02 10 OTR 11 2 1
2008/02 14 GHHG 31 1 0


Tabla Documento
------------------
Numero_documento number(10),
fecha date,
codigo_punto number(2),
codigo_operacion number(3), (Valores van desde el 100 al 200, solamente requiero '101','102','151','152','200')
estado_documento varchar2(2),(Puede estar en estado 'N' o distinto de 'N')
documento_tipo varchar2(3)

Tabla Punto_control
------------------
codigo_punto number(2),
glosa_punto varchar2(30)

Hay otras tablas involucradas, pero no son necesarias de describir.

Desde ya gracias por la ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:39.