1

これは私のクエリで、同じ情報を持つデータが 2 回表示されています。データが一度だけ表示されるようにするにはどうすればよいですか?

    SELECT 
        STUDENT.Stud_Num, STUDENT.Last_Name, STUDENT.First_Name, 
        STUDENT.Middle_Name, STUDENT.Program, CORRELATION.Corr_Code, 
        AVERAGE.Remarks, ACAD_QTR_LINK.Acad_Year, ACAD_QTR_LINK.Qtr, 
        COURSE.Course_Name, GRADES.Grades, GRADES.[No.OfTakes] 
    FROM 
        STUDENT
inner join 
        AVERAGE on STUDENT.Stud_Num = AVERAGE.Stud_Num 
inner join 
        CORRELATION on AVERAGE.Corr_Code = CORRELATION.Corr_Code 
inner join 
        ACAD_QTR_LINK on AVERAGE.Acad_Qtr_ID = ACAD_QTR_LINK.Acad_Qtr_ID 
inner join 
        CORR_COUR_LINK on STUDENT.Stud_Num = CORR_COUR_LINK.Stud_Num 
inner join 
        COURSE on CORR_COUR_LINK.Course_Code = COURSE.Course_Code 
inner join 
        GRADES on CORR_COUR_LINK.Corr_Cour_ID = GRADES.Corr_Cour_ID 
where 
        STUDENT.Stud_Num like '%' and STUDENT.Program like '%' 
        and STUDENT.Last_Name like '%' and STUDENT.First_Name like '%' 
        and STUDENT.Middle_Name like '%' and ACAD_QTR_LINK.Acad_Year like '%' 
        and ACAD_QTR_LINK.Qtr like '%' 
        and COURSE.Course_Name like '%' and CORRELATION.Corr_Code like '%' 

結果の出力:

|StudNum|LName|FName|MName|Prog|CorrCode|Remarks|AcadYr|Qtr|CorName|Grades|No.OfTakes
|2007131|Mendo|charisn|Chucka|ECE|ece12345|7.00000|  '11-'12 |3rd|Mathema|89.000| 1
|2007131|Mendo|charisn|Chucka|ECE|ece12345|7.00000|  '11-'12 |3rd|Mathema|89.000| 1
|2007131|Mendo|charisn|Chucka|ECE|ece12345|7.00000|  '11-'12 |3rd|Electroni|65.000| 1
|2007131|Mendo|charisn|Chucka|ECE|ece12345|7.00000|  '11-'12 |3rd|Electroni|65.000| 1
4

1 に答える 1

0

応答 1 行が完全に同一である場合は、distinct を追加するか、すべての列でグループ化できます。

SELECT distinct STUDENT.Stud_Num, ....

結合が複数の行を返すか、追加の条件を導入してそれらを制限しているテーブルを見つけることもできれば、重複行を排除することもできます。

あなたのコメントを見た後の応答 2 。

SELECT STUDENT.Stud_Num, STUDENT.Last_Name, STUDENT.First_Name, STUDENT.Middle_Name, STUDENT.Program, CORRELATION.Corr_Code, 
AVERAGE.Remarks, ACAD_QTR_LINK.Acad_Year, ACAD_QTR_LINK.Qtr, 
COURSE.Course_Name, GRADES.Grades, GRADES.[No.OfTakes] FROM STUDENT
inner join AVERAGE on STUDENT.Stud_Num = AVERAGE.Stud_Num 
inner join CORRELATION on AVERAGE.Corr_Code = CORRELATION.Corr_Code 
inner join ACAD_QTR_LINK on AVERAGE.Acad_Qtr_ID = ACAD_QTR_LINK.Acad_Qtr_ID 
inner join CORR_COUR_LINK on STUDENT.Stud_Num = CORR_COUR_LINK.Stud_Num 
inner join COURSE on CORR_COUR_LINK.Course_Code = COURSE.Course_Code 
inner join GRADES on CORR_COUR_LINK.Corr_Cour_ID = GRADES.Corr_Cour_ID 
where STUDENT.Stud_Num like '%' and STUDENT.Program like '%' 
and STUDENT.Last_Name like '%' and STUDENT.First_Name like '%' 
and STUDENT.Middle_Name like '%' and ACAD_QTR_LINK.Acad_Year like '%' 
and ACAD_QTR_LINK.Qtr like '%' 
and COURSE.Course_Name like '%' and CORRELATION.Corr_Code like '%' 
group by STUDENT.Stud_Num, STUDENT.Last_Name, STUDENT.First_Name, STUDENT.Middle_Name, STUDENT.Program, CORRELATION.Corr_Code, 
AVERAGE.Remarks, ACAD_QTR_LINK.Acad_Year, ACAD_QTR_LINK.Qtr, 
COURSE.Course_Name, GRADES.Grades, GRADES.[No.OfTakes]

作業フィドル - http://sqlfiddle.com/#!3/2f42e/5

于 2013-03-13T02:50:21.617 に答える