Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Es posible esta consulta desde Postgresql?

Estas en el tema de Es posible esta consulta desde Postgresql? en el foro de PostgreSQL en Foros del Web. Hola, si tengo estas tablas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original id | Nombre ------------- 1   | Nombre1 2   | Nombre2 3   ...
  #1 (permalink)  
Antiguo 04/10/2016, 05:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Es posible esta consulta desde Postgresql?

Hola, si tengo estas tablas:

Código SQL:
Ver original
  1. id | Nombre
  2. -------------
  3. 1  | Nombre1
  4. 2  | Nombre2
  5. 3  | Nombre3
Código SQL:
Ver original
  1. id_socio | Parcela
  2. ---------------------
  3. 1        |Parcela1
  4. 1        |Parcela2
  5. 2        |Parcela3
  6. 3        |Parcela4

Una selección por id del nombre e id_socio de la parcela me dará:

Código SQL:
Ver original
  1. Nombre1 | Parcela1
  2. Nombre1 | Parcela2
  3. Nombre2 | Parcela3
  4. Nombre3 | Parcela4

¿Es posible que la salida fuera así?

Código SQL:
Ver original
  1. Nombre1 | Parcela1
  2.         | Parcela2
  3. Nombre2 | Parcela3
  4. Nombre3 | Parcela4

Es que de esa forma sería menos lioso gestionar los datos para imprimirlos.
A la hora de imprimir yo consigo esa salida haciendo una consulta doble, es decir, recorriendo cada registro de la entrada de nombres, lo imprimo, le hago la consulta de las parcelas que tiene, las imprimo, y paso al siguiente registro de nombres.

Lo más cerca que he estado es haciendo una función de concatenación, algo así (en el ejemplo):
Código SQL:
Ver original
  1. SELECT nombre, string_agg(parcela, ', ') AS "Parcelas"
  2. FROM nombres, parcelas
  3. WHERE nombres.id=parcelas.id_socio
  4. GROUP BY nombre;

Y me da esta salida:
Código SQL:
Ver original
  1. Nombre1 | Parcela1, Parcela2
  2. Nombre2 | Parcela3
  3. Nombre3 | Parcela4

Puede ser que lo que esté diciendo sea una tontería, y obtener una tabla así para hacer una impresión no sea el camino lógico. Si es así, se aceptan criticas
__________________
Mi calculadora en Qt
  #2 (permalink)  
Antiguo 04/10/2016, 07:13
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Es posible esta consulta desde Postgresql?

Creo que podrías llegar a algo con ROLLUP o CUBE.
Estas son funciones analiticas, enfocadas a soluciones de DWH.

Para postgresql, creo que es necesario instalar un paquete adicional.

Nos cuentas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/10/2016, 11:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Es posible esta consulta desde Postgresql?

Hola huesos52, gracias por responder.

La verdad es que era la curiosidad de si se podía resolver con alguna sentencia SELECT o similar.
Supongo que de todas formas la motivación (obtener una tabla fácil de procesar para imprimir) tampoco es la mejor, así que no profundizaré mucho en esto.

Saludos y gracias!
__________________
Mi calculadora en Qt

Etiquetas: posible, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.