
El problema se ve basicamente en la foto.
No se si es posible hacer lo que sale ahi...
Necesito todo en una misma fila, no que por cada mes me vaya arrojando el resultado y lo demas lo rellene con 0.
Se puede?
Thanks!

| |||
Rotación de Tablas extrañas Si no me equivoco esta es una rotacion de tablas: ![]() El problema se ve basicamente en la foto. No se si es posible hacer lo que sale ahi... Necesito todo en una misma fila, no que por cada mes me vaya arrojando el resultado y lo demas lo rellene con 0. Se puede? Thanks! ![]() |
| |||
Prueba esto No estoy seguro de haber entendido lo que pides, en cualquier caso quizá sea esto a lo que te refieres...
Código:
select hd_glosa, left(he_anomes, 4) as anyo, sum(case right(he_anomes, 2) = '01' then he_monto else 0 end) as enero, sum(case right(he_anomes, 2) = '02' then he_monto else 0 end) as febrero, sum(case right(he_anomes, 2) = '03' then he_monto else 0 end) as marzo, sum(case right(he_anomes, 2) = '04' then he_monto else 0 end) as abril, sum(case right(he_anomes, 2) = '05' then he_monto else 0 end) as mayo, sum(case right(he_anomes, 2) = '06' then he_monto else 0 end) as junio, sum(case right(he_anomes, 2) = '07' then he_monto else 0 end) as julio, sum(case right(he_anomes, 2) = '08' then he_monto else 0 end) as agosto, sum(case right(he_anomes, 2) = '09' then he_monto else 0 end) as septiembre, sum(case right(he_anomes, 2) = '10' then he_monto else 0 end) as octubre, sum(case right(he_anomes, 2) = '11' then he_monto else 0 end) as noviembre, sum(case right(he_anomes, 2) = '12' then he_monto else 0 end) as diciembre from habdes_efect, hebedesc where habedesc.hd_codigo = habdes_efect.he_codigo and habdes_efect.he_codigo like '1%' and he_anomes like '2002%' group by hd_glosa, left(he_anomes, 4) order by he_anomes Última edición por engeneral; 12/03/2005 a las 09:18 Razón: Me equivoqué en el select... |
| |||
Bueno, de echo estoy ocupado SP's ![]() mmm.... gracias por el codigo engeneral, pero me arroja exactamente el mismo resultado de arriba, claro por la excepcion de que escribiste todos los meses ![]() a ver si con esto me entienden mejor ![]() ![]() Por ejemplo, en la 1era columna, en donde dice "COLACION", necesito que todas las "colaciones" esten en una misma linea (fila) con su respectivo mes. Y asi lo mismo con "SUELDO", con "MOVILIZACION", etc, etc.... ...o todavia no se entiende? ![]() |
| |||
La diferencia principal entre el código que tú proponías al principio y el que te propuse yo no es que yo haya puesto los doce meses, sino que agrupo por: left(he_anomes, 4) en lugar de por he_anomes. (pruébalo) ![]() |
| ||||
Tu error está en meter en el SELECT a "mes", pues lo tienes que meter en el GROUP BY y eso descuadra tu SELECT. Quitalo del SELECT y del GROUP BY, verás como obtienes los bloques que quieres.
__________________ Friedrich Nietzsche |
| |||
POR FIN!, POR FIN! ![]() ![]() Despues de haber creado 3 post gracias a todos lo que lo hicieron posible! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() VERY SO VERY MUCH SO VERY THANKS! ![]() ![]() ![]() ![]() Aki les dejo el codigo porsi alguien alguna vez tuviese este problema y pueda encontrar ojala alguna ayuda
Código:
SELECT hd_glosa, SUM(CASE RIGHT(he_anomes, 2) WHEN 01 THEN he_monto ELSE 0 END) AS Enero, SUM(CASE RIGHT(he_anomes, 2) WHEN 02 THEN he_monto ELSE 0 END) AS Febrero, SUM(CASE RIGHT(he_anomes, 2) WHEN 03 THEN he_monto ELSE 0 END) AS Marzo, SUM(CASE RIGHT(he_anomes, 2) WHEN 04 THEN he_monto ELSE 0 END) AS Abril, SUM(CASE RIGHT(he_anomes, 2) WHEN 05 THEN he_monto ELSE 0 END) AS Mayo, SUM(CASE RIGHT(he_anomes, 2) WHEN 06 THEN he_monto ELSE 0 END) AS Junio, SUM(CASE RIGHT(he_anomes, 2) WHEN 07 THEN he_monto ELSE 0 END) AS Julio, SUM(CASE RIGHT(he_anomes, 2) WHEN 08 THEN he_monto ELSE 0 END) AS Agosto, SUM(CASE RIGHT(he_anomes, 2) WHEN 09 THEN he_monto ELSE 0 END) AS Septiembre, SUM(CASE RIGHT(he_anomes, 2) WHEN 10 THEN he_monto ELSE 0 END) AS Octubre, SUM(CASE RIGHT(he_anomes, 2) WHEN 11 THEN he_monto ELSE 0 END) AS Noviembre, SUM(CASE RIGHT(he_anomes, 2) WHEN 12 THEN he_monto ELSE 0 END) AS Diciembre FROM habdes_efect, habedesc WHERE habedesc.hd_codigo = habdes_efect.he_codigo AND habdes_efect.he_codigo LIKE '1%' AND he_anomes LIKE '2002%' GROUP BY hd_glosa, LEFT(he_anomes, 4) ![]() |