No problem! My bad…
/*
* Disclaimer!!!
* This is not a real query being executed, but a simplified version for general vision.
* Executing it with any other tool may produce a different result.
*/
with [SubQuery1] as
(select
[PartMtl].[Company] as [PartMtl_Company],
[PartMtl].[PartNum] as [PartMtl_PartNum],
[PartMtl].[RevisionNum] as [PartMtl_RevisionNum],
[PartMtl].[MtlSeq] as [PartMtl_MtlSeq],
[PartMtl].[MtlPartNum] as [PartMtl_MtlPartNum],
[PartMtl].[QtyPer] as [PartMtl_QtyPer],
[PartMtl].[RelatedOperation] as [PartMtl_RelatedOperation],
(1) as [Calculated_Hierarchy],
(case
when PartMtl.MtlSeq < 10 then cast(concat('000', PartMtl.MtlSeq) as nvarchar(25))
when PartMtl.MtlSeq < 100 then cast(concat('00', PartMtl.MtlSeq) as nvarchar (25))
when PartMtl.MtlSeq < 1000 then cast(concat('0', PartMtl.MtlSeq) as nvarchar (25))
end) as [Calculated_Ind1],
(PartMtl.PartNum) as [Calculated_TopLevel],
(case
when Hierarchy = 1 AND MinMtlSeq1 = 1 THEN PartMtl.PartNum
else ''
end) as [Calculated_DisplayedTopLevel],
(PartCost.StdLaborCost+ PartCost.StdBurdenCost+ PartCost.StdMaterialCost+ PartCost.StdSubContCost+ PartCost.StdMtlBurCost) as [Calculated_StdTotalCost],
(Row_Number() over (partition by Part.Company, TopLevel order by PartMtl.MtlSeq)) as [Calculated_MinMtlSeq1],
[Part].[UnitPrice] as [Part_UnitPrice],
[Part].[PartDescription] as [Part_PartDescription],
[PlantWhse].[PrimBin] as [PlantWhse_PrimBin]
from Erp.PartMtl as PartMtl
inner join Erp.PartCost as PartCost on
PartMtl.MtlPartNum = PartCost.PartNum
inner join Erp.PlantWhse as PlantWhse on
PartMtl.MtlPartNum = PlantWhse.PartNum
inner join Erp.Part as Part on
PlantWhse.Company = Part.Company
and PlantWhse.PartNum = Part.PartNum
where PartMtl.PartNum like @PartNum
union all
select
[PartMtl1].[Company] as [PartMtl1_Company],
[PartMtl1].[PartNum] as [PartMtl1_PartNum],
[PartMtl1].[RevisionNum] as [PartMtl1_RevisionNum],
[PartMtl1].[MtlSeq] as [PartMtl1_MtlSeq],
[PartMtl1].[MtlPartNum] as [PartMtl1_MtlPartNum],
[PartMtl1].[QtyPer] as [PartMtl1_QtyPer],
[PartMtl1].[RelatedOperation] as [PartMtl1_RelatedOperation],
(Calculated_Hierarchy + 1) as [Calculated_Hierarchy2],
(case
when PartMtl1.MtlSeq < 10 then cast(concat(Calculated_Ind1, '-', '000', PartMtl1.MtlSeq) as nvarchar(25))
when PartMtl1.MtlSeq < 100 then cast(concat(Calculated_Ind1, '-', '00', PartMtl1.MtlSeq) as nvarchar(25))
when PartMtl1.MtlSeq < 1000 then cast(concat(Calculated_Ind1, '-', '0', PartMtl1.MtlSeq) as nvarchar(25))
end) as [Calculated_Ind2],
(Calculated_TopLevel) as [Calculated_TopLevel1],
(case
when Hierarchy2 = 1 AND MinMtlSeq2 = 1 THEN PartMtl1.PartNum
else ''
end) as [Calculated_DisplayTopLevel2],
(PartCost1.StdLaborCost+ PartCost1.StdBurdenCost+ PartCost1.StdMaterialCost+ PartCost1.StdSubContCost+ PartCost1.StdMtlBurCost) as [Calculated_StdTotalCost1],
(Row_Number() over (partition by Part1.Company, TopLevel1 order by PartMtl1.MtlSeq)) as [Calculated_MinMtlSeq2],
[Part1].[UnitPrice] as [Part1_UnitPrice],
[Part1].[PartDescription] as [Part1_PartDescription],
[PlantWhse1].[PrimBin] as [PlantWhse1_PrimBin]
from Erp.PartMtl as PartMtl1
inner join SubQuery1 as SubQuery1 on
PartMtl1.PartNum = SubQuery1.PartMtl_MtlPartNum
and PartMtl1.Company = SubQuery1.PartMtl_Company
inner join Erp.PartCost as PartCost1 on
PartCost1.PartNum = PartMtl1.MtlPartNum)
select
[SubQuery11].[Calculated_DisplayedTopLevel] as [Calculated_DisplayedTopLevel],
[SubQuery11].[Calculated_Hierarchy] as [Calculated_Hierarchy],
[SubQuery11].[PartMtl_MtlPartNum] as [PartMtl_MtlPartNum],
[SubQuery11].[Part_PartDescription] as [Part_PartDescription],
[SubQuery11].[PartMtl_QtyPer] as [PartMtl_QtyPer],
[SubQuery11].[PartMtl_MtlSeq] as [PartMtl_MtlSeq],
[PartWhse].[OnHandQty] as [PartWhse_OnHandQty],
[PartWhse].[DemandQty] as [PartWhse_DemandQty],
[SubQuery11].[Part_UnitPrice] as [Part_UnitPrice],
[SubQuery11].[Calculated_StdTotalCost] as [Calculated_StdTotalCost],
[SubQuery11].[PlantWhse_PrimBin] as [PlantWhse_PrimBin],
(case when (VendPartNum) = ',' then ''
else (VendPartNum)
end) as [Calculated_VendorPartNum],
(case when (MfgPartNum) = ',' then ''
else (MfgPartNum)
end) as [Calculated_MnfgPartNum],
(String_Agg(PartXRefVend.VendPartNum, ', ')) as [Calculated_VendPartNum],
(String_Agg(PartXRefVend.MfgPartNum, ', ')) as [Calculated_MfgPartNum],
[SubQuery11].[Calculated_Ind1] as [Calculated_Ind1]
from SubQuery1 as SubQuery11
left outer join Erp.PartXRefVend as PartXRefVend on
SubQuery11.PartMtl_MtlPartNum = PartXRefVend.PartNum
left outer join Erp.PartWhse as PartWhse on
SubQuery11.PartMtl_MtlPartNum = PartWhse.PartNum
group by [SubQuery11].[Calculated_DisplayedTopLevel],
[SubQuery11].[Calculated_Hierarchy],
[SubQuery11].[PartMtl_MtlPartNum],
[SubQuery11].[Part_PartDescription],
[SubQuery11].[PartMtl_QtyPer],
[SubQuery11].[PartMtl_MtlSeq],
[PartWhse].[OnHandQty],
[PartWhse].[DemandQty],
[SubQuery11].[Part_UnitPrice],
[SubQuery11].[Calculated_StdTotalCost],
[SubQuery11].[PlantWhse_PrimBin],
[SubQuery11].[Calculated_Ind1]
order by SubQuery11.Calculated_DisplayedTopLevel, SubQuery11.Calculated_Ind1
And FYI I want it to sort by Calculated_DisplayedTopLevel, and then Calculated_Ind1