bugfix> sql-server > 投稿

SQL Server Management Studioを使用して、保険ポリシーデータをポリシーテーブルからドライバーテーブルに変換しようとしています。

ポリシーの追加ドライバーごとに新しい行を作成する必要がありますが、ポリシーレベルの情報は保持します。つまり、この変換のためのクエリが必要です...

回答 1 件
  • スキーマを正規化して修正します。ポリシーテーブルを参照する追加のドライバーテーブルが必要です。

    一方、3つの SELECT があります s、ドライバーデータ列と UNION ALL の各セットに1つ  それらを一緒に。

    SELECT policynum,
           vehiclereg,
           make,
           maindriver_name driver_name,
           maindriver_dob driver_dob
           FROM policytable
    UNION ALL
    SELECT policynum,
           vehiclereg,
           make,
           add1_name driver_name,
           add1_dob driver_dob
           FROM policytable
           WHERE additionaldrivers > 0
    UNION ALL
    SELECT policynum,
           vehiclereg,
           make,
           add2_name driver_name,
           add2_dob driver_dob
           FROM policytable
           WHERE additionaldrivers > 1;
    
    

あなたの答え