TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
C# Corner
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Pivot Query in SQL Server 2008
Bikesh Srivastava
Aug 09
2016
Code
680
0
1
facebook
twitter
linkedIn
Reddit
WhatsApp
Email
Bookmark
expand
CREATE
TABLE
#REVENUE
(
ID
INT
PRIMARY
KEY
IDENTITY(1,1)
NOT
NULL
,
[
MONTH
]
VARCHAR
(8)
NOT
NULL
,
SALES
DECIMAL
(8,2)
NOT
NULL
,
EmpId
int
)
INSERT
INTO
#REVENUE
([
MONTH
],SALES,EmpId)
VALUES
(
'JAN-2015'
, 200000.16,1),
(
'FEB-2015'
, 220000.17,1),
(
'MAR-2015'
, 227000.55,2),
(
'APR-2015'
, 247032.75,1),
(
'MAY-2015'
, 287652.75,2),
(
'JUN-2015'
, 265756.75,2),
(
'JUN-2016'
, 265.75,3)
select
*
from
#REVENUE
truncate
table
#Revenue
---------------Simple Pivot example-------
SELECT
*
FROM
(
SELECT
[
MONTH
],
SALES,EmpId
FROM
#REVENUE)X
PIVOT
(
AVG
(SALES)
for
[
MONTH
]
in
([JAN-2015],[FEB-2015],[MAR-2015],[APR-2015],[MAY-2015])
)p
-------------Dynamic pivot table----
DECLARE
@cols
AS
NVARCHAR(
MAX
),
@query
AS
NVARCHAR(
MAX
)
SELECT
@cols = STUFF((
SELECT
','
+ QUOTENAME([
MONTH
])
FROM
#REVENUE
FOR
XML PATH(
''
), TYPE
).value(
'.'
,
'NVARCHAR(MAX)'
)
,1,1,
''
)
print @cols
SELECT
@query =
'
SELECT
*
FROM
(
SELECT
[
MONTH
],
SALES,EmpId
FROM
#REVENUE )X
PIVOT
(
AVG
(SALES)
for
[
MONTH
]
in
(
' + @cols + '
)
) P'
EXEC
SP_EXECUTESQL @query
I have created a table and implemented pivot query.
SQL
Pivot
Dynamic