我最后正确连接了一个表“FinalData”,它应该带来右连接表的所有值和内连接表的匹配值 但由于内部联接值为空,因此在拉取记录时会产生 0 行
SELECT G.Regno AS MCQ_Regno, G.SNO AS RNO, f.RegNo AS StuRegNo, ' ' as StuName, h.[Dcode] AS Prcode,
h.[P] AS Crcode, h.[Department_code] AS DeptCode, h.[Sub_exam_code] AS SubExCode, ' ' AS AssTyp, h.[Name_of_exam_code] AS ExmCode,
'E' + CONVERT(VARCHAR(10), c.EvaluationType) AS eval, G.TotalMark AS MCQ_Mark, D.TotalMarks AS Descriptive_Mark,'' AS Mark,
'M1'Ty,g.Project_ID,g.SRNO,'Both_MCQ&Descriptive' as SelectedType
FROM DB1.dbo.Booklet A INNER JOIN DB1.dbo.Subject AS B ON B.ID = A.SubjectID
INNER JOIN DB1.dbo.Ets AS C ON C.BID = A.ID AND C.SubjectID = A.SubjectID
INNER JOIN DB1.dbo.Bks AS D ON D.BID = C.BID AND D.SubjectID = C.SubjectID AND D.EvaluatorID =C.Evaluator
INNER JOIN DB1.dbo.DataSync AS E ON E.SubjectID = B.ID
INNER JOIN DB1.dbo.RollNo AS F ON f.be = a.ID AND f.mcode = b.Code
INNER JOIN DB2.dbo.STU_Master AS h ON h.regno= f.RegNo and h.sno= f.MCode
RIGHT JOIN (SELECT Regno, SNO, TotalMark,Project_ID FROM 'FinalData') AS G ON G.regno = f.RegNo AND G.SNO = f.mcode
WHERE h.sno = 35417
使用可能的步骤来理解问题:
With T1 as (
SELECT
G.Regno AS MCQ_Regno,
G.SNO AS RNO,
f.RegNo AS StuRegNo, ' ' as StuName,
h.[Dcode] AS Prcode,
h.[P] AS Crcode,
h.[Department_code] AS DeptCode,
h.[Sub_exam_code] AS SubExCode,
' ' AS AssTyp,
h.[Name_of_exam_code] AS ExmCode,
'E' + CONVERT(VARCHAR(10),
c.EvaluationType) AS eval,
G.TotalMark AS MCQ_Mark,
D.TotalMarks AS Descriptive_Mark,
'' AS Mark,
'M1'Ty,g.Project_ID,g.SRNO,
'Both_MCQ&Descriptive' as SelectedType
FROM
DB1.dbo.Booklet A
INNER JOIN
DB1.dbo.Subject AS B
ON B.ID = A.SubjectID
INNER JOIN
DB1.dbo.Ets AS C
ON C.BID = A.ID
AND C.SubjectID = A.SubjectID
INNER JOIN DB1.dbo.Bks AS D
ON D.BID = C.BID
AND D.SubjectID = C.SubjectID
AND D.EvaluatorID =C.Evaluator
INNER JOIN DB1.dbo.DataSync AS E
ON E.SubjectID = B.ID
INNER JOIN DB1.dbo.RollNo AS F
ON f.be = a.ID
AND f.mcode = b.Code
INNER JOIN DB2.dbo.STU_Master AS h
ON h.regno= f.RegNo
AND h.sno= f.MCode
RIGHT JOIN (SELECT Regno, SNO, TotalMark,Project_ID FROM 'FinalData') AS G
ON G.regno = f.RegNo
AND G.SNO = f.mcode
)
select * from T1
where sno = 35417
希望您的问题能够得到解决 谢谢你