Entiendo, podrias probar sin ponerle las comillas doblesa la definiciones de los parametros
AS lista(estado text, renglon text, cantidad text); El 1 de julio de 2010 12:49, Cesar A <cesar.carbon...@gmail.com> escribió: > Hola Diego. > > Nop, lo uno, ni lo otro: > > SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*)::text > FROM consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, > agri02_002') AS lista("estado" text, "renglon" text, "cantidad" text); > ERROR: invalid return type > DETAIL: SQL rowid datatype does not match return rowid datatype. > > SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*) FROM > consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002') > AS lista("estado" text, "renglon" text, "cantidad" numeric); > ERROR: invalid return type > DETAIL: SQL rowid datatype does not match return rowid datatype. > > > Me da la impresión que tiene que ver con la cantidad de columnas devueltas > y las definidas, pero, justo lo que me interesa es "pivotear" la consulta > original, donde me quede la primera columna los estados, y el resto los > renglones > > > El 1 de julio de 2010 12:14, Diego Ayala <netdieg...@gmail.com> escribió: > > deberias castear el count(*), ya que en la ultima parte estas definiendo >> cantidad de tipo text, puedes hacer count(*)::text, y deberia de funcionar.. >> >> El 1 de julio de 2010 12:39, Cesar A <cesar.carbon...@gmail.com>escribió: >> >> Saludos >>> >>> Disculpen ustedes, pero no doy pie con bola en una consulta a crosstab: >>> >>> Normalita: >>> >>> SELECT est_002, agri02_002, count(*) FROM consulta_agri04 GROUP BY >>> agri02_002, est_002 ORDER BY est_002, agri02_002; est_002 | >>> agri02_002 | count >>> ----------+------------------------+------- >>> Mérida | CACAO | 83 >>> Mérida | CAFE | 169 >>> Mérida | CAÑA | 68 >>> Mérida | CEREALES Y LEGUMINOSAS | 421 >>> Mérida | FRUTALES | 746 >>> Mérida | HORTALIZAS | 1277 >>> Mérida | ORNAMENTALES | 41 >>> Mérida | RAICES Y TUBERCULOS | 484 >>> Táchira | CACAO | 12 >>> Táchira | CAFE | 29 >>> Táchira | CAÑA | 1 >>> Táchira | CEREALES Y LEGUMINOSAS | 310 >>> Táchira | FRUTALES | 209 >>> Táchira | HORTALIZAS | 451 >>> Táchira | RAICES Y TUBERCULOS | 222 >>> Trujillo | CAFE | 26 >>> Trujillo | CAÑA | 20 >>> Trujillo | CEREALES Y LEGUMINOSAS | 97 >>> Trujillo | FRUTALES | 174 >>> Trujillo | HORTALIZAS | 361 >>> Trujillo | RAICES Y TUBERCULOS | 127 >>> (21 filas) >>> >>> >>> Con crosstab: >>> >>> SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*) FROM >>> consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002') >>> AS lista("estado" text, "renglon" text, "cantidad" text); >>> ERROR: invalid return type >>> DETAIL: SQL rowid datatype does not match return rowid datatype. >>> >>> >>> Creo que tengo dudas conceptuales... Cómo es la cosa? >>> >>> Gracias >>> >>> -- >>> -- >>> 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 >>> Debian... todo lo que siempre has querido >>> >> >> >> >> -- >> Diego Ayala >> > > > > -- > -- > 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 > Debian... todo lo que siempre has querido > -- Diego Ayala