From: | Diego Gil <diego(at)adminsa(dot)com> |
---|---|
To: | Juanky Moral <juanky(dot)moral(at)gmail(dot)com> |
Cc: | PostgreSQL Spanish <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Error al usar SUM, COUNT,... en un record |
Date: | 2004-11-17 13:08:38 |
Message-ID: | 1100696918.3246.5.camel@roadwarrior.adminsa.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Pareciera que los tipos de retorno no coinciden. Sum() y Count()
retornan bigint, según el manual.
Que pasa si haces el query sin "as (horas integer, avisos integer);"
Diego.
El mié, 17-11-2004 a las 13:48 +0100, Juanky Moral escribió:
> Hola este es mi primer mensaje a la lista y esta mi primera pregunta:
>
> He creado una función plpgsql que devuelve un RECORD.
> Cuando llamo la función sale este error:
>
> ERROR: Query-specified return tuple and actual function return tuple
> do not match
>
> Si no utilizo las funciones agregadas SUM y COUNT en la query, la
> función se ejecuta sin problemas.
> ¿Alguien sabe qué está pasando? (Uso Postgresql 7.3.2)
>
>
> Este es el procedimiento (la query está simplificada para usar sólo un
> parámetro):
> CREATE OR REPLACE FUNCTION consumo_cliente (varchar,int,int) RETURNS RECORD AS '
> DECLARE
> v_cif ALIAS FOR $1;
> v_anyo ALIAS FOR $2;
> v_mes ALIAS FOR $3;
> v_fila RECORD;
> BEGIN
> SELECT INTO v_fila sum(horas) as horas, count(*) as avisos
> FROM asistencia
> GROUP BY cif HAVING cif=v_cif;
> RETURN v_fila;
> END;
> 'language 'plpgsql';
>
> La tabla asistencia tiene esta estructura:
> cif | character varying(9)
> fecha | timestamp without time zone
> horas | integer
>
> La llamada a la función la hago así:
> prueba=# select * from consumo_cliente('1',2003,1) as (horas integer,
> avisos integer);
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envíe "unregister SuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Oscar Bogarin Evolution | 2004-11-17 13:51:52 | TIP 7: no olvides aumentar la configuración del "free space map" |
Previous Message | Alejandro D. Burne | 2004-11-17 13:01:27 | Re: error, urgente |