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

Insertar De Una Tabla A Otra

Estas en el tema de Insertar De Una Tabla A Otra en el foro de SQL Server en Foros del Web. Hola----necesito ayuda!!.... Lo que quiero es insertar datos de una tabla a otra en la misma base, pero con ciertas condiciones, tengo mis tablas siguientes: ...
  #1 (permalink)  
Antiguo 10/01/2008, 11:34
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Insertar De Una Tabla A Otra

Hola----necesito ayuda!!....

Lo que quiero es insertar datos de una tabla a otra en la misma base, pero con ciertas condiciones, tengo mis tablas siguientes:


EMPRESAS
Nombre
Rfc
direccion
impuesto
subtotal
iva
total

FACTURAS
Nombre
rfc
impuesto
subtotal
iva
total

Quiero Insertar los campos impuesto, subtotal, iva y total de la tabla FACTURAS a sus respectivos de la tabla EMPRESAS, pero en base al RFC y/o el NOMBRE, por decir....Si el RFC de facturas es igual al de EMPRESAS, entonces que se inserten los datos correspondientes
No se si sea muy complejo, espero me puedan dar una idea de como hacerlos... Gracias... Saludos!!
  #2 (permalink)  
Antiguo 10/01/2008, 13:24
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Re: Insertar De Una Tabla A Otra

¿Quieres INSERTAR o ACTUALIZAR los datos?
  #3 (permalink)  
Antiguo 11/01/2008, 10:15
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Insertar De Una Tabla A Otra

Yo creo que mas bien seria actualizar pq ya existen los campos en la otra tabla, en realidad lo que quiero es unir en base al RFC y NOMBRE, si es igual el de una tabla a otra entonces insertar el valor correspodiente de impuesto, subtotal, iva y total , Espero me haya explicado bien.... Saludos!!
  #4 (permalink)  
Antiguo 14/01/2008, 17:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Re: Insertar De Una Tabla A Otra

-- Para ACTUALIZAR los datos de Facturas
UPDATE FACTURAS
SET impuesto = X.impuesto,
subtotal = x.subtotal,
iva = x.iva,
total = x.total
FROM
EMPRESAS e JOIN FACTURAS X
ON e.RFC = X.RFC

-- Para insertar los que no existen, es un simple INSERT con la validacion de WHERE RFC NOT EXISTS(SELECT RFC FROM FACTURAS)
  #5 (permalink)  
Antiguo 15/01/2008, 12:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Insertar De Una Tabla A Otra

Ya hice exactamente lo que me dijiste, no marca error, pero a la hora de verificar si realizó bien el UPDATE no hace nada, los datos en la tabla FACTURAS permanecen iguales....Gracias por tu ayuda!! SLds!!
  #6 (permalink)  
Antiguo 15/01/2008, 12:22
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 2 meses
Puntos: 3
Re: Insertar De Una Tabla A Otra

verifica los datos reemplazando el update por un select antes de enviar el query:

-- Para ACTUALIZAR los datos de Facturas
/*UPDATE FACTURAS
SET impuesto = X.impuesto,
subtotal = x.subtotal,
iva = x.iva,
total = x.total*/
select *
FROM
EMPRESAS e JOIN FACTURAS X
ON e.RFC = X.RFC

deberían aparecer todos los registros a modificar.
salu2
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #7 (permalink)  
Antiguo 16/01/2008, 13:29
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Insertar De Una Tabla A Otra

No pude obtener la unión de los registros, no marcaba error pero no me insertaba nada, probé con el select para ver lo que tenia que insertar y si lo arroja, pero ya con el UPDATE ya no. Probé uniendo ambas tablas con un into, pero lo hice campo por campo lo cual es mas tardado, pero si quedó finalmente una tabla con todos los campos juntos usando como referencia el rfc...


select a.id, a.razon_social, a.rfc, a.curp,numero_empleados,a.hombres,a.mujeres,a.disc apacitados,a.lider_mujeres,a.tamano,a.contacto,a.c argo,a.direccion,a.colonia,a.delegacion,a.estado, a.cp, a.lada, a.telefono, a.fax, a.rama, a.sector, a.subsector, a.email,a.area, a.servicio_compite, a.consultor, a.fecha_servicio, b.factura,b.fecha,b.importe,b.descuento,b.subtotal ,b.iva,b.total
into uniontabla7
from base a, unionfactura b
WHERE a.razon_social = b.nombre and a.rfc=b.rfc

Si me lo hace bien, ahora el problema es que quiero que me una solamente lo de los registros que no se repiten en ninguna de las dos tablas, para obtenerlos lo hice así:

REGISTROS NO REPETIDOS DE LA TABLA UNIONFACTURA
SELECT * from unionfactura where clave in (SELECT clave FROM unionfactura WHERE (clave LIKE '[a-z]%') Group By clave Having count(clave)=1) and fecha BETWEEN '01-Jan-2006' AND '31-dec-2006'


REGISTROS NO REPETIDOS DE LA TABLA BASE
SELECT * from base where razon_social in (SELECT razon_social FROM base WHERE (razon_social LIKE '[a-z]%') Group By razon_social Having count(razon_social)=1) and fecha_servicio BETWEEN '01-Jan-2006' AND '31-dec-2006'


No se me ocurre como realizar la consulta para unir las tablas pero en base a las de los de registros no repetidos, hay alguna manera? Es decir, que me una ambas con los criterios de a.rfc = b.rfc , pero ambas con registros NO repetidos!!! que lata!!!!.... Gracias por sus respuestas...Saludos!!!
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 00:42.