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

Unificar tablas con clave dividida

Estas en el tema de Unificar tablas con clave dividida en el foro de SQL Server en Foros del Web. Hola a tod@s! Bueno, tengo un inconveniente que tal vez es bastante común, pero me está desquiciando ya! Hice mi aplicación con mi conjunto de ...
  #1 (permalink)  
Antiguo 06/11/2008, 13:43
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Unificar tablas con clave dividida

Hola a tod@s!
Bueno, tengo un inconveniente que tal vez es bastante común, pero me está desquiciando ya!

Hice mi aplicación con mi conjunto de tablas y todo funcionaba perfecto, hasta que fue necesario importar los datos del sistema viejo al nuevo, antes de implementar.

El sistema anterior tenía tres gestiones que hoy no interesa diferenciar, por lo que para recuperar todos los datos tuve que importar a SQL tres bases de datos diferentes, cada una, con las mismas tablas pero diferente contenido.

Hasta ahí, mi solución era fácil. Hago un importar datos con una query union que unifique todos los datos en una misma tabla, y de ahí con un sp leo esos datos y los inserto en la tabla destino (la que diseñé específicamente para la aplicación nueva)

Mi problema surge cuando en mi tabla destino tengo una clave dividida en dos columnas, Codigo_Cliente y Nro_Actividad.
Se supone que por cada cliente, hay un sin fin de actividades, pero el número de actividad no se repetirá para el mismo cliente. Esto es real en mi diseño, pero en la tabla resultante de mi select union, hay datos duplicados para el cliente y actividad, lo que deriva en la detención de mi sp

Aclaro que lo hago con un sp también por el hecho que, de crear una interfaz para leer dato por dato y discriminar si me sirve o no, sería un caos, ya que son más de 30.000 registros los de las tres administraciones viejas.

Para las otras tablas, como la clave principal de mi tabla era un solo dato, valía importar discriminando en el where DatoClave not in (Select DatoClave de la otra tabla), pero cuando tengo dividida la clave en dos columnas, realmente no se me ocurre cómo hacerlo!

Si alguien tiene una idea de cómo hacerlo, se lo agradecería muchísimo.
Mientras tanto seguiré intentando a ver si se me ocurre algo, y de resolverlo, pasaré a comentarlo.

Gracias a todos de antemano
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #2 (permalink)  
Antiguo 06/11/2008, 15:18
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Unificar tablas con clave dividida

Si esos registros repetidos son iguales puedes hacer un distinct o en todo caso sumarlos.
Haces un UNION ALL?
Si son registros diferentes, entonces solo queda crearles un nuevo Nro_Actividad.
Seria mejor que pongas ejemplos o parte de tu codigo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 07/11/2008, 06:04
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: Unificar tablas con clave dividida

Hola Flaviovich
Primeramente gracias por tu respuesta.
Por ahora estoy verificando si son exactamente iguales o no, para eliminar los duplicados, pero en el caso que no lo sean, sería un problema que ya no le vería solución por este lado, dado que al ser datos de una aplicación vieja, digamos, un histórico, no puedo cambiar el número de actividad, dado que para cada actividad hay un registro en caja que hace referencia al pago de cuotas, con lo que eso destruiría toda correlación de información.

Ya veré que se me ocurre, por ahora, intentaré tomarlos sin duplicados (por lo menos de la clave) y ver si los registros de caja quedan coherentes.
Al ser más de 30.000 registros los que obtengo uniendo las tres tablas, a simple vista no encuentro los que me duplican la clave.

De todos modos gracias, y ya estaré comentando qué fue lo que sucedió con esto.
__________________
Why can't we not be sober?
www.partitorium.com.ar
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 07:26.