Hola a todos

A mi me pasa lo mismo, intento que el numero y nombre de las columnas sea algo dinámico, pero no hay forma.
Alguien sabe como conseguirlo???
Vamos, lo que queremos, creo, es algo igual al PIVOT de access.

Saludos

El 02/07/10 17:06, Cesar A escribió:
Claro, pero esos títulos pueden no ser siempre los mismos, o la misma cantidad... de ahí el cuento

El 2 de julio de 2010 09:46, Julio Cesar Rodriguez Dominguez <jura...@gmail.com <mailto:jura...@gmail.com>> escribió:



    El 2 de julio de 2010 09:07, Cesar A <cesar.carbon...@gmail.com
    <mailto:cesar.carbon...@gmail.com>> escribió:

        Bueno... luego de revisar y hacer varias pruebas, algo me salió.

        Revisando el último ejemplo de la doc[0], hice mi prueba:

            SELECT * FROM public.crosstab
            (
                'SELECT est_002, agri02_002, count(*)::numeric FROM
            consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY
            est_002, agri02_002',
                'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER
            BY agri02_002'
            ) AS lista(estado text, renglon1 text, renglon2 text,
            renglon3 text, renglon4 text, renglon5 text, renglon6
            text, renglon7 text, renglon8 text);

        de la que obtuve:

            estado  | renglon1 | renglon2 | renglon3 | renglon4 |
            renglon5 | renglon6 | renglon7 | renglon8
            
----------+----------+----------+----------+----------+----------+----------+----------+----------
             Mérida   | 83       | 169      | 68       | 421      |
            746      | 1277     | 41       | 484
             Táchira  | 12       | 29       | 1        | 310      |
            209      | 451      |          | 222
             Trujillo |          | 26       | 20       | 97       |
            174      | 361      |          | 127
            (3 filas)

        Según en el ejemplo, la definición de las columnas ya se
        conoce, pero y sí quisiéramos que los títulos de las columnas
        fueran parte de la bondad del crosstab? ya ven  que mi:

            SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY
            agri02_002;
                   agri02_002
            ------------------------
             CACAO
             CAFE
             CAÑA
             CEREALES Y LEGUMINOSAS
             FRUTALES
             HORTALIZAS
             ORNAMENTALES
             RAICES Y TUBERCULOS
            (8 filas)



    Solo que definas las columnas con los títulos de los valores que
    devuelve la consulta de arriba.

    SELECT * FROM public.crosstab
    (
        'SELECT est_002, agri02_002, count(*)::numeric FROM
    consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002,
    agri02_002',
        'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY
    agri02_002'
    ) AS lista(estado text, cacao text, cafe text, "caña" text,
    "cereales y leguminosas" text, frutales text, hortalizas text,
    ornamentales text, "raices y tuberculos" text);




--
--
Sí no eres parte de la solución... eres parte del problema.
Les Luthiers
--
Cesar A. Carbonara R.
C.I. Nº V.11.952.572
--
Usuario Linux 377997
www.gulmer.org.ve <http://www.gulmer.org.ve>
Debian... todo lo que siempre has querido

Responder a