हाँ आप एक गतिशील धुरी प्रदर्शन कर सकते हैं। कभी-कभी <पर काम करना आसान हो जाता है। कोड>पिवट पहले एक स्थिर संस्करण का उपयोग करके क्वेरी करें ताकि आप देख सकें कि क्वेरी और परिणाम कैसे दिखाई देंगे। फिर क्वेरी को एक गतिशील संस्करण में बदलें।
यहाँ एक क्वेरी के स्थिर बनाम गतिशील संस्करण का एक उदाहरण दिया गया है:
स्टेटिक (SQL Fiddle ):
select *
from
(
select u.userid,
u.fname,
u.lname,
u.mobile,
r.question,
r.choice
from users u
left join results r
on u.questionid = r.questionid
and u.choiceid = r.choiceid
) x
pivot
(
min(choice)
for question in([are you], [from])
) p
गतिशील (SQL Fiddle ):
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.question)
FROM results c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT userid, fname, lname, mobile, ' + @cols + ' from
(
select u.userid,
u.fname,
u.lname,
u.mobile,
r.question,
r.choice
from users u
left join results r
on u.questionid = r.questionid
and u.choiceid = r.choiceid
) x
pivot
(
min(choice)
for question in (' + @cols + ')
) p '
execute(@query)
यदि आप अपनी वर्तमान तालिका संरचना और फिर कुछ नमूना डेटा के बारे में अधिक जानकारी प्रदान कर सकते हैं। हमें आपकी स्थिति के लिए आवश्यक संस्करण बनाने में आपकी सहायता करने में सक्षम होना चाहिए।
जैसा कि मैंने कहा, कभी-कभी स्थिर संस्करण से शुरू करना आसान होता है, जहां आप कॉलम में हार्ड-कोड करते हैं जिसे आपको पहले बदलने की आवश्यकता होती है, फिर गतिशील संस्करण पर जाएं।