Re: Consulta

From: Guillermo Schulman <gschulman_ml(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta
Date: 2004-06-30 21:26:08
Message-ID: 20040630212608.5404.qmail@web21408.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

(este mail no es un reply directo del mail que
responde porque estoy teniendo algunos problemas con
mi cliente de mail)

Si no entiendo mal, la idea es encontrar aquellos
registros consecutivos que no tengan el mismo
locationsource.
Supongo que este query te solucionaría el problema:

select t2.* from tbllines t1, tbllines t2 where
t1.recnum=t2.recnum+1 and t1.locationsource <>
t2.locationsource
UNION
select t2.* from tbllines t1, tbllines t2 where
t1.recnum+1=t2.recnum and t1.locationsource <>
t2.locationsource;

La segunda parte podés solucionarla usando el mismo
concepto.
Si necesitas ayuda avisame.

Benjamin Roberto Alvarado Rivera wrote:

Buenas tardes,

Tengo una duda, pero es un off-topic, aun que se trata
de una consulta.
en fin, lo siento.

Tengo unas tablas como estas

tabla de nodos
tblnodos (recnum numeric, NodeId numeric, ... )

tabla de lineas
tbllines ( recnum numeric, upNodeID numeric,
downNodeID, ... ,
LocationSource numeric, ... )

donde:
upNodeID y downNodeID de tbllines, que forman los
nodos de una tubería
de drenaje, estarían relacionados con nodeID de
tblnodos.
LocationSource es el numero de plano y
recnum es un numero auto-incrementado por una
secuencia, generado en
cada ingreso del registro.

Es posible por medio de SQL hacer una consulta a la
tabla tbllines, que
tendría datos como estos:

recnum up down locationsource
1 1 2 1000
2 2 3 1000
. . . .
. . . .
. . . .
50 38 40 1000
51 40 41 2000
52 42 43 2000
. . . .
. . . .
. . . .
79 124 125 2000
80 125 126 5500
. . . .
. . . .
. . . .
110 267 268 5500
111 269 270 6700
. . . .
. . . .
. . . .

y ordenarlos por recnum y obtener solo las tuplas
donde hay cambios de
locationsource, es decir que de la tabla anterior solo
me de

recnum up down locationsource
50 38 40 1000
51 40 41 2000
79 124 125 2000
80 125 126 5500
110 267 268 5500
111 269 270 6700

que son las tuplas donde hubo cambio de
locationsource.

y otra duda, que se basa en el mismo problema, seria
solo seleccionar
aquellas tuplas que tiene cambios de locationsource y
el nodo
downNodeId es igual a UpNodeID de la siguiente tupla.
con lo que solo
tendria como resultado

recnum up down locationsource
50 38 40 1000
51 40 41 2000
79 124 125 2000
80 125 126 5500

las ultimas dos tuplas,con recnum 110 y 111, no las
seleccionaría por
que no tiene nodeID en común.

Es posible hacer esto por medio de SQL, por que lo
estoy haciendo por
medio de programación, recorriendo el resultado de una
consulta y donde
encuentre las diferencias y usa esos datos

Pero, no se si es posible? hacer directamente esto,
desde SQL, que me
facilitaría mas algunas cosas.

Muchas gracias por su tensión.

Benjamin Alvarado

---------------------------(end of
broadcast)---------------------------
TIP 1: para suscribirte y desuscribirte, escribe a
majordomo(at)postgresql(dot)org

------------
Internet gratis ¡y que funciona!
Tres nuevas ciudades con números locales:
Escobar, Zárate y Campana
Yahoo! Conexión
http://ar.online.yahoo.com
¿Qué esperas para navegar bien y a bajo costo?

Responses

  • Re: Consulta at 2004-07-01 13:50:13 from Benjamin Roberto Alvarado Rivera

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2004-06-30 22:13:05 Re: Select con horas
Previous Message Benjamin Roberto Alvarado Rivera 2004-06-30 20:58:12 Re: Consulta