我正在尝试使用SQL Server Management Studio将一些保险政策数据从Policy表转换为Driver表。
我需要为策略上的每个其他驱动程序创建一个新行,但保留策略级别信息。即,我需要查询此转换......
答案 0 :(得分:0)
通过规范化修复您的架构。应该有一个引用策略表的额外驱动程序表。
同时有三个SELECT
个,每个驱动数据列一个,UNION ALL
个。{/ p>
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;