Mahfoud Bouabdallah Ответов: 1

Создание различных значений в STRING_AGG


Я хочу получить отличное значение от STRING_AGG, но, к сожалению, я не понял, что это мой запрос
SELECT 
	   proinfo.ProjectN 
	  ,proinfo.ProjectName
	  ,cust.Name as 'Customer'
	  ,sum(daiPaiPro.Quantity*ProShip.Weight)as 'Weight'
	  ,STRING_AGG( ISNULL(ProShip.Designation , ' '), ' ,') WITHIN GROUP (ORDER BY ProShip.Designation ASC)  As 'Parts'
	  ,[DateMAD] as 'DateMAD'
	  ,[Note] 
      ,[CreationDate] 

  FROM [dbo].[PlanningCHByPart] daiPaiPro
  inner join ProjectShipping ProShip on ProShip.id=[FK_idPartShip]
  inner join ProjectInfo proinfo on proinfo.id=ProShip.IdProject
  inner join Employee emp on ID_Employee=daiPaiPro.[UserID]
  inner join Customer cust on cust.ID=proinfo.FK_Customer

  Group By
       proinfo.ProjectN 
	  ,proinfo.ProjectName
	  ,cust.Name 
	  ,[DateMAD] 
	  ,[Note]
      ,[CreationDate] 
  Order By [DateMAD]


Что я уже пробовал:

Я попробую это сделать
,(select STRING_AGG( ISNULL(x.Designation , ' '), ' ,') WITHIN GROUP (ORDER BY x.Designation ASC) from
 (select ProjectShipping.Designation from
  ProjectShipping group by ProjectShipping.Designation) x)  As 'Parts'

но тогда я получаю все значение обозначения из таблицы ProjectShipping

1 Ответов

Рейтинг:
9

Christian Graus

Я бы использовал CTE для создания таблицы различных строк, а затем использовал бы ее в вашей функции STRING_AGG.