Sql 使用联接将两个不同表的两列相乘时复制行
我有以下几张表Sql 使用联接将两个不同表的两列相乘时复制行,sql,sql-server,join,Sql,Sql Server,Join,我有以下几张表 问题(分段)(主控) 问题(设置)(详情) 当我连接这两个表时,我得到了重复的行。。 请查看fiddle,我在那里发布了这两个模式及其数据 这是我预期的行动 您需要获得每个部分的问号。此外,您应该使用分支id、测试id、主题代码id以及段id加入 使用JOIN然后获取不同的值 SELECT DISTINCT qsm.segment_id, segment_name, segment_description , must_attend_question AS tot_atte
您需要获得每个部分的问号。此外,您应该使用分支id、测试id、主题代码id以及段id加入 使用JOIN然后获取不同的值
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;
您的join子句中缺少段id
SELECT DISTINCT
qsm.segment_id,
qsm.segment_name,
qsm.segment_description,
qsm.must_attend_question tot_attented_question,
qsm.total_question tot_questions,
(qsd.question_marks * must_attend_question) tot_marks,
'' AS marks_obtain
FROM dbo.question_segment_master qsm
INNER JOIN dbo.question_set_details qsd on
qsd.test_id = qsm.test_id
and qsd.segment_id = qsm.segment_id
WHERE qsm.test_id=1
AND qsm.branch_id = 15
AND qsm.subject_code_id =1 AND qsd.question_set_id = 1
SqLFIDLE是很好的,但是添加表数据、预期结果和查询也在这里。我已经发布了Sigrle小提琴没有显示重复行,请解释你认为“复制”我加入2个表,在WHERE子句中我已经提到了条件,我还是得到了重复段ID(s)。需要区分的地方..可能您忘记在连接中使用段id了?请在这里粘贴预期结果表。