From: | "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar> |
---|---|
To: | <daniel(dot)ferrer(at)ctd(dot)com(dot)ar>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Problemas con subconsulta |
Date: | 2009-10-27 13:09:09 |
Message-ID: | 8E2434A2358A41868295DC97FF2D8595@iptel.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> -----Mensaje original-----
> De: Daniel Ferrer
>
> Estimados:
> Tengo un problema (en realidad, no se como
> parsearlo) con una subconsulta, que me devuelve un "int",
> pero necesito convertirlo a "varchar" y como todo la tupla va
> concatenada, no puedo generarla.(creo que ese el error)
> porque me devuelve una cadena vacía.
>
> El ejemplo seria:
>
> SELECT (a.nombre || ' cantidad: ' || (Select sum(b.cantidad)
> FROM tabla_b b WHERE b.id = a.id) || '.' ) AS registro FROM
> tabla_a a WHERE a.id = 6
>
> el resultado que espero debería ser algo así:
> "nombre cantidad: 3."
>
> Si alguien me puede dar una mano...
>
>
Si ese fuese el error, la solución tuya sería castear el resultado de la
subconsulta:
SELECT (a.nombre || ' cantidad: ' || (Select sum(b.cantidad)::text
FROM tabla_b b WHERE b.id = a.id) || '.' ) AS registro FROM
tabla_a a WHERE a.id = 6
Pero ese no es el error ya que Postgres soporta la concatenación entre un
texto y un entero.
Lo más probable es que no exista el id = 6 en tabla_b.
En tal caso modifica tu consulta a la siguiente:
SELECT (a.nombre || ' cantidad: ' || (Select COALESCE(sum(b.cantidad), 0)
FROM tabla_b b WHERE b.id = a.id) || '.' ) AS registro FROM
tabla_a a WHERE a.id = 6
Saludos.
From | Date | Subject | |
---|---|---|---|
Next Message | Fabio Arias | 2009-10-27 15:00:10 | RESTAURAR BACKUP SIN DATOS |
Previous Message | Ezequiel - | 2009-10-27 13:07:45 | Re: Problemas con subconsulta |