From: | Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx> |
---|---|
To: | Victor <victor(dot)perez(at)e-evolution(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: |
Date: | 2005-06-29 16:02:07 |
Message-ID: | m3mzp9883k.fsf@conexa.fciencias.unam.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Victor <victor(dot)perez(at)e-evolution(dot)com> writes:
> es lo que me te mìa, pero bueno veamos que se puede hacer, este es la
> sentencia SQL:
>
> UPDATE I_BPartner i SET C_BPartner_Location_ID=(SELECT C_BPartner_Location_ID
> FROM C_BPartner_Location bpl INNER JOIN C_Location l ON
> (bpl.C_Location_ID=l.C_Location_ID)
> WHERE i.C_BPartner_ID=bpl.C_BPartner_ID AND bpl.AD_Client_ID=i.AD_Client_ID
> AND DUMP(i.Address1)=DUMP(l.Address1) AND DUMP(i.Address2)=DUMP(l.Address2)
> AND DUMP(i.City)=DUMP(l.City) AND DUMP(i.Postal)=DUMP(l.Postal) AND
> DUMP(i.Postal_Add)=DUMP(l.Postal_Add) AND
> DUMP(i.C_Region_ID)=DUMP(l.C_Region_ID) AND
> DUMP(i.C_Country_ID)=DUMP(l.C_Country_ID))
> WHERE C_BPartner_ID IS NOT NULL AND C_BPartner_Location_ID IS NULL AND
> I_IsImported='N'
>
> lo que entiendo que hace es comparar dos valores de distintas tablas
> convirtiendolos en hexadecimal de esa manera identifica que sean
> exactos.
La comparación me parece un tanto ociosa por no decir perfectamente
inútil. Como cambiaría la sentencia si en vez de decir:
DUMP(i.Address1)=DUMP(l.Address1)
simplemente dices:
i.Address1 = l.Address1
Si entendí bien lo que hace dump, no cambiaría. Por lo tanto quita
todos los dump's y estas listo. La pregunta es: ¿por qué no lo
hicieron así originalmente?. Probablemente que hay algo aqui que no
estamos viendo :-(.
Saludos,
Manuel.
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2005-06-29 16:14:54 | Re: |
Previous Message | Alvaro Herrera | 2005-06-29 15:55:05 | Re: Consultas a las tablas del sistema |