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

Responder a