actualizacion de tabla, teniendo en cuenta los valores de otra SQLSERVER2000

baklum
02 de Junio del 2004
Buenas!!

Queria saber como podria actualizar los datos de los clientes de la empresa, fijandome en su numero de telefono. Para ello tengo una tabla en la que se guardan los datos de clientes en mi base de datos (Empresa), y otra que creo todos los meses con los datos de todos los clientes con los que he tratado ese mes (EmpresaAux). Si coinciden sus numeros de telefono, quiero actualizar los datos de la tabla clientes (nombre, cif, cp, direccion, poblacion) con los datos de la tabla auxiliar.

Habia pensado algo como esto:

update Empresa
set
nombreEmpresa=(select nombre
from EmpresaAux
where telefono in (select telefono from Empresa2)),
nif=(select cif
from EmpresaAux
where telefono in (select telefono from Empresa2)),
direccion=(select direccion
from EmpresaAux
where telefono in (select telefono from Empresa2)),
poblacion=(select poblacion
from EmpresaAux
where telefono in (select telefono from Empresa2)),
cp=(select cp
from EmpresaAux
where telefono in (select telefono from Empresa2))


evidentemente, no funciona, ya que si hay mas de un cliente del que ya tenga datos, el "=" de la primera sql no funcionara. Pero tampoco lo puedo sustituir sin mas por un "in" ya que no puedo guardar en un campo los datos de todos los clientes que ya tengo fichados...

no se si me explico...

gracias por adelantado!!

Rodolfo Reyes
02 de Junio del 2004
Creo que el Update lo puedes modificar y hacerlo de la siguiente manera:

update empresa set
nombreempresa = EmpresaAux.nombre,
nif = EmpresaAux.cif,
direccion = EmpresaAux.direccion,
poblacion = EmpresaAux.poblacion,
cp = EmpresaAux.cp
FROM EmpresaAux
where EmpresaAux.telefono in (select telefono from Empresa2)

Espero que te sirva.