0

一時テーブルを埋めようとしています:

create table #FinalProduct
(
respondentId int,
respondentNumber nvarchar(7),
questionNumber int, 
questionAnswer nvarchar(100)
)

これまでのところ、必要なrespondentIdsとrespondentNumbersでいっぱいです。次に、質問データを取得する別の一時テーブルを用意します。

CREATE TABLE #QuestionData
(
QuestionNumber int NOT NULL IDENTITY,
QuestionText nvarchar(255),
QuestionId int
)
insert into #QuestionData values ('This is question # 1', 101)
insert into #QuestionData values ('This is question # 2', 102)

質問テーブルの questionId を使用して回答を取得する回答テーブルがあります。

CREATE TABLE #AnswerData
(
    RespondentNumber nvarchar(7),
QuestionId int,
AnswerText nvarchar(255)
)

insert into #AnswerData values ('9876543',101, 'Answer to #1')
insert into #AnswerData values ('9876543',102, 'Answer to #2')
insert into #AnswerData values ('1234567',101, 'Answer to #1')
insert into #AnswerData values ('1234567',102, 'Answer to #2')

すべての RespondentNumber には、質問に対する回答があります (すべての回答が同じというわけではありません)。

各respondentNumberにすべての質問と回答の行があるように、FinalProductテーブルを埋めようとしています。たとえば、respondentNumbers が 2 つある場合、最終的なテーブルは次のようになります。

FinalProductTable

これが非常に複雑であることを意図しているかどうかはわかりませんが、理解するのに苦労しています。どんな助けでも大歓迎です。

前もって感謝します。. .

4

2 に答える 2

1

RespondentID が 2 つのテーブルのいずれにもないため、データ要素が欠落しているようですが、次のような結合の直後だと思います。

SELECT respondentNumber, questionNumber ,AnswerText 
FROM AnswerData a
JOIN QuestionData b
 ON a.QuestionId = b.QuestionId 

結果を新しいテーブルに選択することができます。

SELECT respondentNumber, questionNumber ,AnswerText 
INTO #FinalProduct
FROM AnswerData a
JOIN QuestionData b
 ON a.QuestionId = b.QuestionId 

または、それらを既存のテーブルに INSERT することもできます。

INSERT INTO #FinalProduct
SELECT respondentNumber, questionNumber ,AnswerText 
FROM AnswerData a
JOIN QuestionData b
 ON a.QuestionId = b.QuestionId 
于 2013-06-11T02:45:17.367 に答える