2012-09-11 3 views
0

질문이 있는데 문제를 해결할 수있는 좋은 방법이 없습니다. SQLServer 2008R2를 사용하고 있습니다. 중복 클라이언트 및 판매 통합

나는 3 개 테이블

Client, Invoice, Car 

클라이언트입니다 중복 N 시간을 가지고 있지만, 각 클라이언트는 티켓과 하나 개의 제품이있다.

그래서 고유 한 식별자를 사용하여 클라이언트를 통합하려고합니다. 이제 제 질문은 제품 및 티켓의 참조 필드를 업데이트하는 방법입니다.

**Client** 

[Nombre] 
     ,[Apellido_Paterno] 
     ,[Apellido_Materno] 
     ,[Sexo] 
     ,[Estado_Civil] 
     ,[Fecha_Nacimiento] 
     ,[RFC] 
     ,[Saludo] 
     ,[Persona] 
     ,[Razon_Social] 
     ,[Direccion] 
     ,[Colonia] 
     ,[Municipio_Delegacion] 
     ,[Estado] 
     ,[Codigo_Postal] 
     ,[Lada_Casa] 
     ,[Telefono_Casa] 
     ,[Ext_Telefono_Casa] 
     ,[Lada_Oficina] 
     ,[Telefono_Oficina] 
     ,[Ext_Telefono_Oficina] 
     ,[Telefono_Celular] 
     ,[Email_Personal] 
     ,[Vehiculo_Actual_Anterior] 
     ,[Marca_Actual_Anterior] 
     ,[AnioModelo_Actual_Anterior] 
     ,[Color_Actual_Anterior] 
     ,[Escolaridad] 
     ,[Venta_Id] 
     ,[Nombre1] 
     ,[Nombre2] 

**Invoice** 

[Factura_Cliente] 
     ,[Factura_Distribuidor] 
     ,[Precio_Base_Vehiculo] 
     ,[Precio_Accesorios] 
     ,[Precio_Vehiculo_DeContado] 
     ,[Descuento] 
     ,[Incentivo_Calculado] 
     ,[Fecha_Entrega_DelVehiculo] 
     ,[Fecha_Factura_Cliente] 
     ,[Clave_Distribuidor] 
     ,[Seguro_Gratis] 
     ,[Clave_Promocion] 
     ,[Tipo_Venta] 
     ,[Unidad_de_Intercambio] 
     ,[Venta_Id] 

**Car** 

[Modelo] 
     ,[Marca] 
     ,[AnioModelo] 
     ,[Basico] 
     ,[Cabecera] 
     ,[Version] 
     ,[Color_Exterior] 
     ,[Color_Interior] 
     ,[VIN] 
     ,[Motor] 
     ,[Transmision] 
     ,[Origen] 
     ,[Basico_Linea_Modelo] 
     ,[Venta_Id] 

(그들은 자신의 분야에 불일치가 있더라도) 나는, 클라이언트를 통합 할 수 있습니다,하지만 난 이것에 대한 효과적인 해결책을 찾을 수 없습니다.

편집 : 클라이언트의 첫 번째 열은 복제본을 표시하고 두 번째 열은 티켓 및 제품과 일치하는 ID입니다.

+0

무엇을 시도 했습니까? 검색어를 게시 할 수 있습니까? 그것은 작동하지 않으면 중요하지 않습니다, 출발점이며 어쩌면 오류가 해결하기 쉽습니다. 몇 가지 샘플 데이터를 게시하면 테스트하고 더 나은 대답을 줄 수 있습니다. – Yaroslav

+0

아직 쿼리를 수행하지 않았습니다. 먼저 몇 가지 아이디어를 생각하려고합니다. 스토어 프로 시저를 사용하여 ID를 암송하고 사용할 수 있습니다. 같은 클라이언트를 전달하기위한 분간의 협동은하지만 이것은 잠시 또는 커서로 할 필요가있다. – Enrique

+0

실제 테이블 구조를 게시 할 수 있습니까? –

답변

1

나는 두 개의 테이블을 더 만들 것입니다.

새 클라이언트 (기존 클라이언트와 동일한 필드 모두) 및 이전 클라이언트와 새 클라이언트 간의 매핑 테이블.

이 매핑 테이블은 이전 맵의 ID를 저장해야하며 새 맵으로 매핑되었습니다.

여기에서 꽤 쉽게. 지도 테이블의 현재 이전 ID를 기반으로 새 ID로 다른 표를 업데이트하십시오.

+0

이것은 좋은 생각인데, 복제본은 지금까지 클라이언트 당 최대 1,000 개 (여전히 대량 삽입을 수행 중입니다)입니다. – Enrique

관련 문제