我有兩個相對複雜的查詢,我試圖將它們合併到一個結果集中。如何在兩個複雜的SQL查詢上執行OUTER JOIN?
結果集1:
SELECT sq.question_id,
COUNT(ra.question_option_id) AS TotalAnswers
FROM dbo.survey_question sq
LEFT OUTER JOIN dbo.question_option qo
ON sq.question_id = qo.question_id
LEFT OUTER JOIN dbo.form_response_answers ra
ON qo.question_option_id = ra.question_option_id
GROUP BY sq.question_id
結果集2:
SELECT p.program_id,
p.pre_survey_form_id,
p.post_survey_form_id,
fq.form_id,
sq.question_id,
sq.question_text,
qo.question_option_id,
qo.option_text,
G.Total
FROM dbo.program p
LEFT OUTER JOIN dbo.form_question fq
ON p.pre_survey_form_id = fq.form_id OR p.post_survey_form_id = fq.form_id
LEFT OUTER JOIN dbo.survey_question sq
ON fq.question_id = sq.question_id
LEFT OUTER JOIN dbo.question_option qo
ON sq.question_id = qo.question_id
LEFT OUTER JOIN (
SELECT ra.question_id, ra.question_option_id, COUNT(*) AS Total
FROM dbo.form_response_answers ra
GROUP BY ra.question_option_id, ra.question_id
) G
ON G.question_id = sq.question_id AND G.question_option_id = qo.question_option_id
ORDER BY p.program_id, fq.form_id, sq.question_id, qo.question_option_id
我要加入他們的行,其中question_id匹配。請幫忙。
您是否嘗試過使用CTE或表變量? – Romhein 2012-04-10 15:28:56
好的,我嘗試使用CTE並沒有任何運氣。我能夠創建一個CTE,但它不會讓我做兩個。我仍然不知道如何以這種方式實現JOIN。我怎麼可以用表變量做到這一點? – Darren 2012-04-10 15:53:47