Reputation: 71
I tried to get some result into a pivot table but not get the expected result.Here by I have put the code and result.
DECLARE @TblIdeaCategory TABLE
(
IdeaImplement varchar(2000),
IdeaCategory varchar(2000)
)
INSERT INTO @TblIdeaCategory values('Metrics Feedback One #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Metrics Feedback Two #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback One #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback Two #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback One #1','IdeaGenerationFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback Two #1','IdeaGenerationFeedback')
select
IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback from
(select IdeaImplement,IdeaCategory
from @TblIdeaCategory as board
) resultTable
pivot (
max(IdeaImplement) for IdeaCategory in (IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback)) as resultpivot
select IdeaImplement,IdeaCategory from @TblIdeaCategory
Upvotes: 3
Views: 97
Reputation: 1369
The following query should do what you want:
DECLARE @TblIdeaCategory TABLE
(
IdeaImplement varchar(2000),
IdeaCategory varchar(2000)
)
INSERT INTO @TblIdeaCategory values('Metrics Feedback One #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Metrics Feedback Two #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback One #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback Two #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback One #1','IdeaGenerationFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback Two #1','IdeaGenerationFeedback')
select
IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback from
(select IdeaImplement,IdeaCategory,ROW_NUMBER() OVER(PARTITION BY IdeaCategory ORDER BY (SELECT 1)) AS RNO
from @TblIdeaCategory as board
) resultTable
pivot (
MAX(IdeaImplement) for IdeaCategory in (IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback)) as resultpivot
The result is as below,
IdeaGenerationFeedback AnalysisFeedback MetricFeedback
Idea Generation Feedback One #1 Analysis Feedback One #1 Metrics Feedback One #1
Idea Generation Feedback Two #1 Analysis Feedback Two #1 Metrics Feedback Two #1
Upvotes: 1
Reputation: 520968
I think you actually would want to use UNPIVOT
here rather than PIVOT
, but in any case you could just use a series of unions, which might perform better anyway.
SELECT IdeaGenerationFeedback AS IdeaImplement, 'IdeaGenerationFeedback' AS IdeaCategory
FROM yourOriginalTable
UNION ALL
SELECT AnalysisFeedback, 'AnalysisFeedback' FROM yourOriginalTable
UNION ALL
SELECT MetricFeedback, 'MetricFeedback' FROM yourOriginalTable;
Upvotes: 0