如何将相同外键的子表的多条记录的相同字段整理到主表的某一字段中

背景:
主表中的一条记录
在这里插入图片描述
相关子表对应的多条记录
在这里插入图片描述
目标:将子表中的多个配件名称整理成一个数据项,放在主表的某一字段中

第一步:筛选
select distinct(partsname) from M_Station_vehiclepartslist where M_Station_vehiclepartslist.VehicleNo = ‘72943FEE-2B2E-4CA4-BBCA-10D39E6BA888’
在这里插入图片描述

第二步:数据预处理
select a.partsname +’/’ from (
select distinct(partsname) from M_Station_vehiclepartslist where M_Station_vehiclepartslist.VehicleNo = ‘72943FEE-2B2E-4CA4-BBCA-10D39E6BA888’
) a
在这里插入图片描述
第三步:数据整理
select STUFF( (
select a.partsname +’/’ from (
select distinct(partsname) from M_Station_vehiclepartslist where M_Station_vehiclepartslist.VehicleNo = ‘72943FEE-2B2E-4CA4-BBCA-10D39E6BA888’
) a FOR XML PATH(’’)),1 ,0, ‘’) partsname
在这里插入图片描述
第四步:去除最后一个/
select left(a.partsname ,LEN(a.partsname)-1)partsname from(
select (
select a.partsname +’/’ from (
select distinct(partsname) from M_Station_vehiclepartslist where M_Station_vehiclepartslist.VehicleNo = ‘72943FEE-2B2E-4CA4-BBCA-10D39E6BA888’
) a FOR XML PATH(’’)) partsname)a
在这里插入图片描述
补充:
FOR XML PATH(’’)
参考链接

left(a.partsname ,LEN(a.partsname)-1)
LEN(a.partsname)
未完待续

猜你喜欢

转载自blog.csdn.net/hello_world_1996/article/details/109324873