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

Anexar datos

Estas en el tema de Anexar datos en el foro de Bases de Datos General en Foros del Web. Cordial saludo a todos Tengo un problema con dos tablas y es el siguiente: Inicialmente tenia una tabla con 93.000 registros, luego de tres meses ...
  #1 (permalink)  
Antiguo 15/11/2010, 06:15
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Anexar datos

Cordial saludo a todos

Tengo un problema con dos tablas y es el siguiente:

Inicialmente tenia una tabla con 93.000 registros, luego de tres meses me enviaron la misma tabla pero con 102.000 registros. tengo que actualizar una tabla con la informacion de ambas tablas.

estos son los campos:
  • Departamento
  • Municipio
  • Folio
  • Nombres
  • No_Identificacion
  • dir
  • Tel
  • cel
  • origen
  • barrio
  • sector
  • cohorte
  • estado
  • CGS

y esta es la sentencia SQL:

INSERT INTO
[General_agosto]
(Departamento,Municipio,Folio,Nombres,No_Identific acion,dir,Tel,cel,origen,barrio,sector,cohorte,est ado,CGS)
SELECT Departamento,Municipio,Folio,Nombres,No_Identifica cion,dir,Tel,cel,origen,barrio,sector,cohorte,esta do,CGS
FROM
General_Octubre
Where [General_agosto].[ No_Identificacion] NOT IN (Select General_Octubre.No_Identificacion From General_Octubre)

Pero no hace nada, osea lo he dejado mas de dos horas y aun esta actulizando...entonces cancelo. reviso la tabla y no a insertado nada...
  #2 (permalink)  
Antiguo 15/11/2010, 06:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Anexar datos

Fijate bien:


INSERT INTO [General_agosto]
....
SELECT ...
FROM
General_Octubre
Where [General_agosto].[ No_Identificacion] NOT IN (Select General_Octubre.No_Identificacion From General_Octubre)

Eso intenta insertar a General_agosto cosas de Octubre que no tengan el identificador en Octubre...

A ver asi

Código SQL:
Ver original
  1. INSERT INTO [General_agosto]
  2.                 (Departamento,  
  3.                 Municipio,
  4.                 Folio,
  5.                 Nombres,
  6.                 No_Identific acion,
  7.                 dir,
  8.                 Tel,
  9.                 cel,
  10.                 origen,
  11.                 barrio,
  12.                 sector,
  13.                 cohorte,
  14.                 estado,
  15.                 CGS)
  16.       SELECT Departamento,  
  17.                    Municipio,
  18.                    Folio,
  19.                    Nombres,
  20.                    No_Identific acion,
  21.                    dir,
  22.                    Tel,
  23.                    cel,
  24.                    origen,
  25.                    barrio,
  26.                    sector,
  27.                    cohorte,
  28.                    est ado,
  29.                    CGS
  30.              FROM General_Octubre
  31.              WHERE No_Identificacion NOT IN
  32.                            (SELECT No_Identificacion
  33.                                        FROM General_Agosto)


Es decir inserta los de Octubre que no esten en Agosto.

Quim
  #3 (permalink)  
Antiguo 15/11/2010, 06:56
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Anexar datos

Quimfv, muchas gracias,
voy a intentar en la oficina mañana a ver como me va.

Gracias mil

Augusto V.
  #4 (permalink)  
Antiguo 16/11/2010, 09:18
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Anexar datos

Cordial saludo de nuevo

Nada que me funciona...se queda ahi pensando hasta que me aburro y cancelo la operacion.

Estos son mis datos reales de la consulta:

INSERT INTOControlLBF(Municipio,
Folio,
PrimerNombre,
SegundoNombre,
PrimerApellido,
SegundoApellido,
TipoId,
NumeroId,
TipoMiembro,
Origen,
Cohorte,
Estado,
Cgs )
SELECTGeneralNov.Municipio,
GeneralNov.Folio,
GeneralNov.Primer_nomb,
GeneralNov.Segundo_nomb,
GeneralNov.Primer_apellido,
GeneralNov.Segundo_apellido,
generalNov.Tipo_doc,
GeneralNov.Numero_doc,
GeneralNov.Vinculo_familiar,
GeneralNov.Origen,
GeneralNov.Cohorte,
GeneralNov.Estado,
GeneralNov.Cgs
FROM GeneralNov, ControlLBF
Where ControlLBF.NumeroId NOT IN (Select Numero_doc From GeneralNov)

Donde ControlLBF, y tiene 93.000 registros, es la tabla que tengo desatualizada y GeneralNov es la tabla que tiene la informacion actualizada y tiene 102.000 registros.

GRacias,
  #5 (permalink)  
Antiguo 18/11/2010, 02:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Anexar datos

INSERT INTOControlLBF(Municipio,
Folio,
PrimerNombre,
SegundoNombre,
PrimerApellido,
SegundoApellido,
TipoId,
NumeroId,
TipoMiembro,
Origen,
Cohorte,
Estado,
Cgs )
SELECTGeneralNov.Municipio,
GeneralNov.Folio,
GeneralNov.Primer_nomb,
GeneralNov.Segundo_nomb,
GeneralNov.Primer_apellido,
GeneralNov.Segundo_apellido,
generalNov.Tipo_doc,
GeneralNov.Numero_doc,
GeneralNov.Vinculo_familiar,
GeneralNov.Origen,
GeneralNov.Cohorte,
GeneralNov.Estado,
GeneralNov.Cgs
FROM GeneralNov, ControlLBF
Where ControlLBF.NumeroId NOT IN (Select Numero_doc From GeneralNov)

Introduce en ControlLBF, lo de GeneralNov combinado con ControlLBF donde NO ESTE EN GeneralNov
O algo así. Estas haciendo el mismo error eso no tiene sentido!!

INSERT INTOControlLBF(Municipio,
Folio,
PrimerNombre,
SegundoNombre,
PrimerApellido,
SegundoApellido,
TipoId,
NumeroId,
TipoMiembro,
Origen,
Cohorte,
Estado,
Cgs )
SELECTGeneralNov.Municipio,
GeneralNov.Folio,
GeneralNov.Primer_nomb,
GeneralNov.Segundo_nomb,
GeneralNov.Primer_apellido,
GeneralNov.Segundo_apellido,
generalNov.Tipo_doc,
GeneralNov.Numero_doc,
GeneralNov.Vinculo_familiar,
GeneralNov.Origen,
GeneralNov.Cohorte,
GeneralNov.Estado,
GeneralNov.Cgs
FROM GeneralNov
Where Numero_doc NOT IN (Select NumeroId From ControlLBF)

Introduce en ControlLBF, todo lo de GeneralNov que NO ESTE EN ControlLBF. Que creo que és lo que estas intentando...

Puede ser una consulta muy lenta sobre todo si no tienes indices sobre Numero_doc, por un lado y sobre NumeroId....

Quim

Última edición por quimfv; 18/11/2010 a las 02:19
  #6 (permalink)  
Antiguo 20/11/2010, 06:27
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Anexar datos

Ok, entiendo

Pero tengo un problema y es que los campos ControlLBF.NumeoId y GeneralNov.Numero_doc en muchos casos estan vacios. el unico campo que no puede estar vacio es Folio, pero se repite, el Folio representa una familia y sus integrantes, donde hay un representante por familia.

corri la consulta como tu me dices, pero eso se queda ahi una enternidad.....

Ejecutr Consulta.......................................... . segundos...munitos....horas....
  #7 (permalink)  
Antiguo 20/11/2010, 19:03
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Anexar datos

Bueno la hice en SQL Server de la siguiente manera:

INSERT INTO ControlLBF
(ControlLBF.Municipio,
ControlLBF.Folio,
ControlLBF.PrimerNombre,
ControlLBF.SegundoNombre,
ControlLBF.PrimerApellido,
ControlLBF.SegundoApellido,
ControlLBF.TipoId,
ControlLBF.NumeroId,
ControlLBF.TipoMiembro,
ControlLBF.Origen,
ControlLBF.CGS,
ControlLBF.Cohorte,
ControlLBF.Estado)
SELECT
GeneralNov.Municipio,
GeneralNov.Folio,
GeneralNov.Primer_nomb,
GeneralNov.Segundo_nomb,
GeneralNov.Primer_apellido,
GeneralNov.Segundo_apellido,
GeneralNov.Tipo_doc,
GeneralNov.Numero_doc,
GeneralNov.Vinculo_familiar,
GeneralNov.Origen,
GeneralNov.Cgs,
GeneralNov.Cohorte,
GeneralNov.Estado

FROM
GeneralNov LEFT JOIN ControlLBF ON ControlLBF.Id = GeneralNov.Id
WHERE
ControlLBF.Id is null

Aun no he revisado a ver si estan bien los datos, pero me gustaria que le dieras una mirada a ver si esta bien asi..

gracias
  #8 (permalink)  
Antiguo 22/11/2010, 02:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Anexar datos

Ese Id no lo habias mencinado hasta ahora!!!

Si el id de una tabla y de la otra representan lo mismo si esta bien,

ControlLBF.Id =1

GeneralNov.Id =1

(se refieren a lo mismo)

y ademas si son PK como estan indexados todo ira mucho mas rapido.

Cita:
...luego de tres meses me enviaron la misma tabla pero con...
si es así SI ESTA BIEN.

Tienes claro que eso agrega los nuevos registros pero no actualiza los ya existentes...?

Quim
  #9 (permalink)  
Antiguo 22/11/2010, 16:19
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: Anexar datos

Pues yo le agregue ese Id Autonumerico a ambas tablas, y lo deje como clave principal.

Pero no me funciono, revisando los datos, hay datos que estan en GeneralNov que no aparecen en ControlLBF.

las tablas quedaron con el mismo numero de registros...102 mil y algo mas. pero la información no aparece toda...

Entonces estoy en lo mismo....jodido!!!!

Parece tan Sencillo, pero me esta quedando grande....
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 08:11.