ahmed elbarbary

ahmed elbarbary

  • NA
  • 1.6k
  • 275.3k

How to display features workflow first then package second?

Dec 27 2020 12:43 AM
I have two features Package and Workflow have same display order nd same columnorder by
 
so How to make order by same values
 
ORDER BY MIN(DisplayOrder),ColumnOrderBy
 
I need to display Workflow first then package second so How to do that please ?
 
my script below :
 
  1. CREATE TABLE #SplitNumberAndUnitsFinal(  
  2.      [part_id] nvarchar(20) NULL,  
  3.      [DKFeatureName] [nvarchar](255) NULL,  
  4.      [DisplayOrder] int NULL,  
  5.      [ColumnOrderBy] int NULL,  
  6.      [value] [nvarchar](255) NULL  
  7.  )   
  8. INSERT #SplitNumberAndUnitsFinal ([part_id], [DKFeatureName], [DisplayOrder], [ColumnOrderBy], [value]) VALUES (13587183, N'Packaging', 2, 1, N'-')  
  9.  INSERT #SplitNumberAndUnitsFinal ([part_id], [DKFeatureName], [DisplayOrder], [ColumnOrderBy], [value]) VALUES (13587171, N'Packaging', 2, 1, N'-')  
  10.  INSERT #SplitNumberAndUnitsFinal ([part_id], [DKFeatureName], [DisplayOrder], [ColumnOrderBy], [value]) VALUES (13587183, N'WorkFlow', 2, 1, N'ReadyData')  
  11.  INSERT #SplitNumberAndUnitsFinal ([part_id], [DKFeatureName], [DisplayOrder], [ColumnOrderBy], [value]) VALUES (13587171, N'WorkFlow', 2, 1, N'ReadyData')  
  12.       
  13.  DECLARE @Header nvarchar(max) =    
  14.      (SELECT SUBSTRING((SELECT ', ''' + CASE WHEN DKFeatureName LIKE '%Units' THEN 'Unit' WHEN DKFeatureName LIKE '%MaxValue' THEN 'Max Value'  ELSE replace(DKFeatureName,'''',''''''END + ''' AS '  
  15.          + QUOTENAME(CASE WHEN DKFeatureName LIKE '%Units' THEN 'Unit' WHEN DKFeatureName LIKE '%MaxValue' THEN 'Max Value'   ELSE DKFeatureName ENDAS [text()]  
  16.      FROM #SplitNumberAndUnitsFinal   
  17.       GROUP BY DKFeatureName,ColumnOrderBy  
  18.       ORDER BY MIN(DisplayOrder),ColumnOrderBy  
  19.       FOR XML PATH (''),TYPE).value('(./text())[1]','NVARCHAR(MAX)'), 2, 10000) [Columns])  
  20.       
  21.      --PRINT @Header  
  22.    declare @Columns nvarchar(max)=( select  
  23.      substring(  
  24.          (  
  25.              Select  ',['+DKFeatureName +']' AS [text()]  
  26.              From #SplitNumberAndUnitsFinal   
  27.          GROUP BY DKFeatureName,ColumnOrderBy  
  28.                
  29.               ORDER BY MIN(DisplayOrder),ColumnOrderBy  
  30.               
  31.                  
  32.              For XML PATH ('')  
  33.          ,TYPE).value('(./text())[1]','NVARCHAR(MAX)'), 2, 10000) [Columns])  
  34.       
  35.       
  36.           
  37.          update f set f.displayorder=0,f.ColumnOrderBy=0 from #SplitNumberAndUnitsFinal f  
  38.       
  39.       
  40.       DECLARE @SQL NVARCHAR(MAX)  
  41.      select @SQL =CONCAT('    
  42.   SELECT *  Into #NewTable  
  43.  FROM #SplitNumberAndUnitsFinal  
  44.  PIVOT(max(Value) FOR DKFeatureName IN ('+@Columns+')) AS PVTTable         
  45.  ',  
  46.  N'  Select ''PART_ID'' as ''PART_ID'' ,   ' +@Header + '   
  47.  union all  
  48.  select PART_ID ,  ' +@Columns + '  from  #NewTable  
  49.           
  50.       
  51.     ')  
  52.           
  53.  EXEC (@SQL)  
 expected result as below :
  1. PART_ID WorkFlow    Packaging  
  2. PART_ID WorkFlow    Packaging  
  3. 13587171    ReadyData   -  
  4. 13587183    ReadyData   -  

Answers (1)