Hi @T.Zacks ,
Could you please provide your expected output of @alenzi ?
Per my limited understanding,please refer below and check whether it is working.
DECLARE @Ticker VARCHAR(10),
@ClientCode VARCHAR(10),
@GroupName VARCHAR(10)
DECLARE @SPID VARCHAR(MAX)
DECLARE @SQL nvarchar(MAX),@CRLF nchar(2) = NCHAR(13) + NCHAR(10);
DECLARE @SQL1 nvarchar(MAX), @SQL2 nvarchar(MAX),@SQL3 nvarchar(MAX)
SELECT @SPID=CAST(@@SPID AS VARCHAR)
SET @SQL1= N'SELECT * INTO ##Tmp1_'+@SPID+' FROM (SELECT min(id) ID,f.ticker,f.ClientCode,f.GroupName,f.RecOrder,'
SET @SQL2= STUFF((SELECT N',' + @CRLF + N' ' +
N'MAX(CASE FieldName WHEN ' + QUOTENAME(FieldName,'''') + N' THEN FieldValue END) AS ' + QUOTENAME(FieldName)
FROM tblValuationSubGroup g
WHERE ticker=@Ticker AND ClientCode=@ClientCode AND GroupName=@GroupName
GROUP BY FieldName
ORDER BY MIN(FieldOrder)
FOR XML PATH(''),TYPE).value('(./text())[1]','nvarchar(MAX)'),1,10,N'')
SET @SQL3=N'FROM (select * from tblValuationFieldValue' + @CRLF +
N'WHERE Ticker = '''+@Ticker+''' AND ClientCode = '''+@ClientCode+''' AND GroupName='''+@GroupName+''') f' + @CRLF +
N'GROUP BY f.ticker,f.ClientCode,f.GroupName,f.RecOrder) X';
SET @SQL =@SQL1+@CRLF + @SQL2+@CRLF + @SQL3
--print @SQL
EXEC(@SQL)
EXEC('select * from ##Tmp1_'+@SPID+' ORDER BY Broker')
EXEC('DROP TABLE IF EXISTS ##Tmp1_'+@SPID)
Best regards,
Melissa
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.