Ich will ja nicht kritteln, aber die oft beklagte mangelhafte Lesbarkeit von
SQL ist oft vermeidbar.
Warum arbeitest Du nicht mit mehreren Temptables für
[inventory].[dbo].[fnSplit](@Brand, ';')
[inventory].[dbo].[fnSplit](@Productline, ';')
die Zurechtgecasteten Auswahltabellen bereits eingeschränkt über o.g.
darüber dann die Kumulierungen laufen lassen ...