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

Union de tablas, por la derecha

Estas en el tema de Union de tablas, por la derecha en el foro de PostgreSQL en Foros del Web. Buen día. Pues aqui un poco atorado en una consulta. Mi problema es el siguiente, quiero poner dos tablas pero una la quiero tener desfazada, ...
  #1 (permalink)  
Antiguo 06/09/2010, 13:37
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 9 años, 11 meses
Puntos: 0
Union de tablas, por la derecha

Buen día.
Pues aqui un poco atorado en una consulta.
Mi problema es el siguiente, quiero poner dos tablas pero una la quiero tener desfazada,
digamos que tengo la tabla en la cual tengo dos columnas en la primer columna es un serial y la segunda pues no importa, lo que quiero es que el cuery me arroje 4 columnas, las dos primeras que sea la primer tabla tal cualy en las ultimas dos me arroje la misma tabla pero con un registro menos, como si estubierra desfazada. aqui les pongo un ejemplo

col1 col2 col1.2 col2.1
1 X 2 a
2 a 3 b
3 b 4 l
4 l 5 m
5 m 6 h
6 h 7 y
7 y null null

Si se dan cuenta las ultimas dos columnas son las mismas que la primera solo que desfazados.

como nota no puedo agregar columnas a la tabla, espero me puedan ayudar
gracias.
  #2 (permalink)  
Antiguo 06/09/2010, 13:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 6 meses
Puntos: 360
Respuesta: Union de tablas, por la derecha

Código SQL:
Ver original
  1. pruebas=> SELECT *FROM prueba_desface;
  2.  id | algo
  3. ----+------
  4.   1 | X
  5.   2 | A
  6.   3 | B
  7.   4 | L
  8.   5 | M
  9.   6 | H
  10.   7 | Y
  11. (7 filas)
  12.  
  13. pruebas=> SELECT pd.id,pd.algo,pf.id,pf.algo
  14. FROM prueba_desface pd LEFT JOIN prueba_desface pf
  15. ON pd.id=pf.id-1;
  16.  id | algo | id | algo
  17. ----+------+----+------
  18.   1 | X    |  2 | A
  19.   2 | A    |  3 | B
  20.   3 | B    |  4 | L
  21.   4 | L    |  5 | M
  22.   5 | M    |  6 | H
  23.   6 | H    |  7 | Y
  24.   7 | Y    |    |
  25. (7 filas)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/09/2010, 14:15
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Union de tablas, por la derecha

gracias!!!

pero cuando el id, no es serial y son caracteres al azar(letras y numeros) como seria?
Esque me di cuenta que los ID no son seriales, son alfa numericos y aleatorios,
y desfazado por un resgitro.

Última edición por calakra; 06/09/2010 a las 15:03 Razón: Error en el planteamiento
  #4 (permalink)  
Antiguo 06/09/2010, 15:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 6 meses
Puntos: 360
Respuesta: Union de tablas, por la derecha

Pon un ejemplo de lo que quieres lograr para mirar que se puede hacer.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 06/09/2010, 15:57
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Union de tablas, por la derecha

tabla origen ordenada (order by 1,2)

columna1 columna2
juan america
juan satil23
juan vaca
paola brillo
paola satil23
paola zapato

ahora el resultado que quiero es este

columna1 columna2 columna3 columna4
4muaj america 4muaj sombrilla
4muaj sombrilla juan america
juan america juan satil23
juan satil23 juan vaca
juan vaca paola brillo
paola brillo paola satil23
paola satil23 paola zapato
paola zapato


si nos damos cuenta las ultimas dos columnas estan desfazadas por un registro,
es como el anterior, solo que no son secuenciales y es alfanumerico.
estaba pensando en saber si existe una funcion que me retorne el sigueinte registro en una columna extra.
es lo que se me ocurre, que he buscado un rato por aqui y no encuentro alguna funcion que haga eso. gracias.
  #6 (permalink)  
Antiguo 06/09/2010, 22:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 6 meses
Puntos: 360
Respuesta: Union de tablas, por la derecha

mira esto
http://explainextended.com/2009/05/0...l-row-numbers/
fijate en el uso de la función generate_series y las subconsultas.

Con esto de seguro lo logras.

Nos cuentas como te va
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 07/09/2010, 11:34
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Union de tablas, por la derecha

Gracias, checando. y claro que les diré con gusto.

Etiquetas: solucion
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 19:10.