sql - 使用连接将两个不同表的两列相乘时重复行
问题描述
我有这些下表
- Question_Segment_Master
- Question_Set_Details
当我加入这两个表时,我得到了重复的行.. 请查看小提琴,我在哪里发布了这两个模式及其数据..
http://sqlfiddle.com/#!18/4c84f/10
这是我预期的 OP
解决方案
您需要获取每个段的 question_marks。此外,您应该使用 branch_id、test_id、subject_code_id 和 segment_id 来加入。
使用 JOIN 然后取 Distinct 值
SELECT DISTINCT qsm.segment_id, segment_name, segment_description
, must_attend_question AS tot_attented_question, total_question AS tot_questions
, (qsd.question_marks * must_attend_question) AS tot_marks
, '' AS marks_obtain
FROM dbo.Question_Segment_Master AS qsm
INNER JOIN dbo.Question_Set_Details AS qsd
ON (qsd.branch_id = qsm.branch_id AND qsd.test_id = qsm.test_id
AND qsd.segment_id = qsm.segment_id AND qsd.subject_code_id = qsm.subject_code_id)
WHERE qsm.subject_code_id = 1 and qsm.test_id = 1 and qsm.branch_id = 15;