коллеги, помогите решить задачу группировки значений финансовых измерений в одном поле по заданной маске.
грубо говоря, есть некий набор атрибутов (recid in DimensionHierarchy), в которой существуют несколько выбранных атрибутов (DimensionHierarchyLevelView)
а теперь я хочу сгруппировать наборы значений этих самых выбранных атрибутов из DimensionAttributeValueSetItemView так, чтобы если для атрибута из иерархии нет значения, то в итоговой строке он был бы представлен, например, пустой строкой или n/a.
вот, что я имею в виду на картинке
вот мой запрос, который планирую запихать в computed column на своей вьюхе (работает норм)
X++:
select
t1.DIMENSIONATTRIBUTEVALUESET
,STUFF((SELECT '-' + t16.NAME
FROM DIMENSIONATTRIBUTE t16
JOIN DIMENSIONHIERARCHYLEVELVIEW as t17
on t17.DIMENSIONATTRIBUTE = t16.RECID
where
t17.HIERARCHYrecid = 68719485163
ORDER BY t16.RECID
FOR XML PATH('')), 1, 1, '') as ConcatDimNames
,STUFF((SELECT '-' + t6.NAME +
STUFF((SELECT '-' + t3.DisplayValue
from DimensionAttributeValueSetItemView as t3
where
t1.DimensionAttributeValueSet = t3.DimensionAttributeValueSet
and t7.DIMENSIONATTRIBUTE = t3.DIMENSIONATTRIBUTE
order by t3.DIMENSIONATTRIBUTE
for xml path('')), 1, 1, '')
FROM DIMENSIONATTRIBUTE t6
JOIN DIMENSIONHIERARCHYLEVELVIEW as t7
on t7.DIMENSIONATTRIBUTE = t6.RECID
where
t7.HIERARCHYrecid = 68719485163
ORDER BY t6.RECID
FOR XML PATH('')), 1, 1, '') as ConcatValues
from DimensionAttributeValueSetItemView t1
join DIMENSIONHIERARCHYLEVELVIEW t4
on t4.DIMENSIONATTRIBUTE = t1.DIMENSIONATTRIBUTE
where
t4.HIERARCHYrecid = 68719485163
group by t1.DIMENSIONATTRIBUTEVALUESET
чую, что можно как-то применить регулярные выражения или stuff, но знаний не хватает