1

私の問題:ユーザー名とそのフィードバック応答を格納するベーステーブルがあります。各ユーザーの表には、2つの質問と2つの回答があります。

ans1 ans2ユーザーが各質問/回答のペアに対してコメントを入力できるテキスト列です。

入力テーブル:

username    question1   question2   opt1    ans1    opt2    ans2
-----------------------------------------------------------------------
user1   ques1   ques2   a   answer1 b   answer2
user2   ques1   ques2   c   answer11    d   answer21

私の出力(上記の表のように与えられた入力に対して)クエリは以下の形式で結果を生成する必要があります:

Username    Question    Option  Comment
----------------------------------------------------
user1   ques1   a   answer1
user1   ques2   b   answer2
user2   ques1   c   answer11
user2   ques2   d   answer21

私は結果を得るためにこのクエリを試しましたが、それはどういうわけかすべての可能な組み合わせを取っています..plsが提案します。

SELECT Username,Question,Answers,Options
FROM 
(SELECT username,opt1,opt2,ans1,ans2,ques1,ques2  
FROM dbo.tab1) p
    UNPIVOT(Question FOR q1 IN (ques1, ques2))AS unpvt1
    UNPIVOT(Answers FOR answer1  IN (ans1, ans2))AS unpvt2
    UNPIVOT(Options FOR a  IN (opt1, opt2))AS unpvt3
GO
4

1 に答える 1

0

UNPIVOTを使用せずにこれを照会できると思います。チェックしてください

select 
    distinct UserName, 
    Question1 AS Question, 
    Opt1 AS OPT, 
    Ans1 AS Comment 
From 
    tblFeedback where Question1='Quest1'
UNION ALL
select 
    distinct UserName, 
    Question2 AS Question, 
    Opt2 AS OPT, 
    Ans2 AS Comment 
From 
    tblFeedback where Question2='Quest2'
于 2012-12-20T10:21:26.163 に答える