Una vez mas solicito vuestra ayuda.

 

He estado mirando en el foro y he probado con alguno de los ejemplos que aparecen. Sin embargo sigo sin triunfar.

Lo último que he probado es :

 

update labofls/rapadr set Mailrp = (select clmadi from    

labofls/cliente t1, labofls/rapadr t2, labofls/rapsts t3 where

t2.Idnrrp = t1.clclie and t3.Typerp = 'E' and                 

t3.INSTRP || t3.AVNRRP || t3.LNNRRP || 'E'=             

 

t2.instrp || t2.avnrrp || t2.lnnrrp || 'E')             

 

El resultado de SELECT es de más de una fila.           

 

El fichero t3 labofls/rapsts tiene 4 campos clave (Instrp,avnrrp,lnnrp,typerp), el t2 labfls/rapadr tiene 3 campos clave (Instr.,avnrrp,lnnrp) y el t1 labols/cliente solo 1 (clclie).

 

En principio, el control que añadiste con el ‘where exists’ no debería ser  necesario pues todos los registros del rapadr tienen el correspondiente registro/registros (cada registro rapadr puede tener hasta 4 en el rapsts, pero 1 sólo de ellos tiene el Typerp = ‘E’)

 

Gracias por todo

Oriol


De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Dario G. I. Heinze
Enviado el: lunes, 07 de agosto de 2006 15:22
Para: [email protected]
Asunto: Re: sql varios ficheros -me he olvidado del campo a actualizar-

 

perdon,

 

como es probable que no tengas coincidencias para todos los registros deberias realizarlo asi,

 

update labofls/rapadr set Mailrp = (select clmadi from labofls/cliente, labofls/rapadr, labofls/rapsts where

Idnrrp = idnrrp and Idnrrp = clclie and Typerp = ‘E’) where exists(select clmadi from labofls/cliente, labofls/rapadr, labofls/rapsts where Idnrrp = idnrrp and Idnrrp = clclie and Typerp = ‘E’)

 


Saludos,

 

Dario G. I. Heinze
Dpto AS/400 - C.P.C. S.A.
San Martin 3071 - Santa Fe - Argentina
Tel. 54 342 4558558 int. 112/201
E-Mail: [EMAIL PROTECTED]
_________________________________

----- Original Message -----

Sent: Monday, August 07, 2006 11:04 AM

Subject: Re: sql varios ficheros -me he olvidado del campo a actualizar-

 

Buenas, buenas...

 

si buscas en los mensajes del foro encontraras referencias de updates con campos de otras tablas, pero bueno tal vez con algo si te funcione...

 

update labofls/rapadr set Mailrp = (select clmadi from labofls/cliente, labofls/rapadr, labofls/rapsts where

Idnrrp = idnrrp and Idnrrp = clclie and Typerp = ‘E’)


Saludos,

 

Dario.-

_________________________________

----- Original Message -----

Sent: Monday, August 07, 2006 10:37 AM

Subject: sql varios ficheros -me he olvidado del campo a actualizar-

 

 

Hola de nuevo.

 

Perdonad pero me dejaba el campo a actualizar. El mensaje deberia ser :

 

Debo actualizar el campo Mailrp del fichero labofls/rapadr   = clmadi from labofls/cliente cuando

 

Idnrrp del fichero labofls/rapadr = idnrrp del fichero labofls/rapsts

Idnrrp = clclie del fichero labofls/cliente

Typerp del fichero labofls/rapsts = ‘E’

 

 

Fichero labfls/rapadr :

 

INSTRP            DECIMAL        3

AVNRRP          DECIMAL        8

LNNRRP          DECIMAL       3

IDNRRP           CHARACTER   10

 

Fichero labofls/rapsts :

 

INSTRP                 DECIMAL                   3

AVNRRP               DECIMAL                   8

LNNRRP               DECIMAL                   3

TYPERP               CHARACTER              1

 

 

Gracias

 

Oriol Pegueroles

Cerba Isae

 

 

Responder a