0

質問がありますが、それを解決するための良い方法を思い付くことができません。これはSQLServer2008R2を使用しています。

私は3つのテーブルを持っています

Client, Invoice, Car

クライアントはn回複製されますが、各クライアントにはチケットと1つの製品があります。

だから私はクライアントを(一意の識別子で)統合しようとしています。今私の質問は、製品とチケットの参照フィールドを更新する方法です。

**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]

クライアントを統合することはできますが(フィールドに不一致がある場合でも)、これに対する効果的な解決策を見つけることができません。

編集:クライアントの最初の列は重複を示し、2番目の列はチケットと製品に一致するIDです。

4

1 に答える 1

1

さらに2つのテーブルを作成します。

1 つは新しい統合クライアント用 (すべて通常のクライアントと同じフィールド) で、もう 1 つは古いクライアントと新しいクライアントの間のマッピング テーブルです。

このマッピング テーブルには、古いテーブルの ID と、新しいテーブルとしてマッピングされた ID を格納する必要があります。

ここからはかなり簡単です。マップ テーブル内の現在の古い ID に基づいて、新しい ID で他のテーブルを更新します。

于 2012-09-11T19:25:13.117 に答える