Looking to update this working SQL from Mike01 with a dynamic input list, say from a .xlsx, .csv or .txt file with one parameter in one a single column of PN101, PN102, etc. Normally, no commas, only in .csv or .txt. Thanks.
MS SQL Server 2017 Schema Setup:
Create table Sample (
Item int,
Part_Num varchar(6),
Replaced_Part_Num varchar(5),
Part_Noun varchar(30)
)
Insert into Sample
select 1 ,'PN501','PN401', 'PartName01' union
select 2 ,'PN502','PN402', 'PartName02' union
select 3 ,'PN503','PN403', 'PartName03' union
select 4 ,'PN401','PN301', 'PartName11' union
select 5 ,'PN3402','PN302', 'PartName12' union
select 6 ,'PN403','PN303', 'PartName13' union
select 7 ,'PN2301','PN201', 'PartName21' union
select 8 ,'PN302','PN202', 'PartName22' union
select 9 ,'PN303','PN203', 'PartName23' union
select 10 ,'PN201','PN101', '2_rpld_pn' union
select 11 ,'PN202','PN102', '3_rpld_pn' union
select 12 ,'PN203','PN103', '4_rpld_pn'
;
Query 1:
with cte as
( SELECT
[S].[Item]
, [S].[Part_Num]
, [S].[Replaced_Part_Num]
, [S].[Part_Noun]
FROM
[Sample] AS [S]
WHERE
[S].[Replaced_Part_Num] = 'PN102'
union all
SELECT
[S].[Item]
, [S].[Part_Num]
, [S].[Replaced_Part_Num]
, [S].[Part_Noun]
FROM
[Sample] AS [S]
join cte c
on s.Replaced_Part_Num = c.Part_Num )
select * from cte
[Results][2]:
| Item | Part_Num | Replaced_Part_Num | Part_Noun |
|------|----------|-------------------|------------|
| 11 | PN202 | PN102 | 3_rpld_pn |
| 8 | PN302 | PN202 | PartName22 |
| 5 | PN3402 | PN302 | PartName12 |