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