> -----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. -- TIP 7: no olvides aumentar la configuración del "free space map"