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

Crear periodos con el campo fecha en oracle

Estas en el tema de Crear periodos con el campo fecha en oracle en el foro de Bases de Datos General en Foros del Web. Hola ! Que tal a todos hace poco que soy integrante de este fabuloso sitio y empiezo preguntando en vez de ayudar bueno disculpas por ...
  #1 (permalink)  
Antiguo 20/11/2010, 17:16
Avatar de magiaurbana  
Fecha de Ingreso: noviembre-2010
Ubicación: lejos
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Crear periodos con el campo fecha en oracle

Hola ! Que tal a todos hace poco que soy integrante de este fabuloso sitio y empiezo preguntando en vez de ayudar bueno disculpas por eso...

Bueno pero entrando en materia tengo que hacer un query que realice lo siguiente:

Tengo un tabla llamada tb_costos ejemplo es una mas grande jejeje

cve_ceco cve_cta fecha saldo
1COAD0001 100 01/01/2010 2
1COAD0001 200 01/01/2010 2
1COAD0001 400 03/01/2010 2
1COAD0001 500 05/01/2010 2
1COAD0002 500 05/01/2010 2
1COAD0002 100 06/01/2010 2
1COAD0002 100 06/04/2010 2
1COAD0002 200 06/04/2010 2
1COAD0002 800 09/04/2010 2
1COAD0002 800 09/04/2009 2
1COAD0003 400 09/04/2009 2
1COAD0003 400 09/02/2010 2
1COAD0003 400 09/12/2010 2
1COAD0003 500 09/10/2010 2
1COAD0003 500 09/10/2010 4

La idea es formar una tabla 3 columnas Año ,periodo, saldo con la información de la otra tabla anterior

año periodo saldo
2009 M04 4
2010 M01 12
2010 M02 2
2010 M04 6
2010 M10 2
2010 M10 4
2010 M12 2
2009 B02 4
2010 B01 14
2010 B02 6
2010 B05 6
2010 B06 2

Tengo el siguiente query para los meses y bimestres
---MESES
SELECT extract( YEAR from FECHA) as anio,'M'||to_char(FECHA,'MM')as periodo,SUM(saldo)
FROM TB_COSTOS GROUP BY extract( YEAR from FECHA),to_char(FECHA,'MM'), saldo UNION ALL
---BIMESTRES
SELECT EXTRACT(YEAR FROM FECHA) AS ANIO,
CASE
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 1 AND 2 THEN 'B01'
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 3 AND 4 THEN 'B02'
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 5 AND 6 THEN 'B03'
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 7 AND 8 THEN 'B04'
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 9 AND 10 THEN 'B05'
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 11 AND 12 THEN 'B06'
END AS PERIODO,
SUM
(
CASE
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 1 AND 2 THEN SALDO
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 3 AND 4 THEN SALDO
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 5 AND 6 THEN SALDO
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 7 AND 8 THEN SALDO
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 9 AND 10 THEN SALDO
WHEN EXTRACT(MONTH FROM FECHA) BETWEEN 11 AND 12 THEN SALDO ELSE 0
END) AS SALDO

FROM TB_COSTOS GROUP BY EXTRACT(YEAR FROM FECHA),EXTRACT(MONTH FROM FECHA)


Aqui ejecuto la consulta del query bimestres, pero el problema es que no acumula los bimestres

año periodo saldo
2009 B02 4
2010 B01 12
2010 B01 2
2010 B02 6
2010 B05 6
2010 B06 2

aqui deberia haber sumado los dos B01 para que el resultado fuera asi

año periodo saldo
2009 B02 4
2010 B01 14
2010 B02 6
2010 B05 6
2010 B06 2

bueno por consecuencia los demas querys trimestre,cuatrimestre,semestre se comportan igual, necesito de su apoyo para hacer esto saber si hay otra manera de hacerlo o en que esta mal mi query

Etiquetas: oracle, fechas, campos
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 20:21.