0
여기 내 쿼리입니다. 왜 각 행이 결과를 3 배로 늘리는 지 알 수 없습니다. 나는 뚜렷한 선택을 시도했다. AssessmentProficiencyLevelRank가 모든 레코드에 대해 3 번 반복됩니다. 이러한 추가 행은 어떻게 제거합니까?SQL 반복 행
Select distinct
sai.AcademicYear,
sai.AcademicYearNum,
sai.StateCode,
sai.StudentBKID,
sai.StudentDWID,
sai.LastName,
sai.FirstName,
sai.ReportName,
sai.calendarperiodname,
case when aps.StateAssessmentProficiencySubjectName = 'Not Applicable' and sub.Subject = 'Algebra I' then 'Math'
when aps.StateAssessmentProficiencySubjectName = 'Not Applicable' and sub.Subject = 'Algebra 1' then 'Math'
when aps.StateAssessmentProficiencySubjectName = 'Not Applicable' and sub.Subject = 'Algebra II' then 'Math'
when aps.StateAssessmentProficiencySubjectName = 'Reading' then 'ELA'
else aps.[StateAssessmentProficiencySubjectName] end as StateAssessmentProficiencySubjectName,
sai.AssessmentName,
sai.assessmentdate,
sai.scaledscore,
sai.GradeAbbreviation,
dar.proficiency,
dar.AssessmentProficiencyLevelRank
into #main
From StudentAssessmentMart.dbo.vwStateAssessmentInformation sai
inner join StudentAssessmentMart.dbo.FctAssessmentStateSubject fct
on sai.StudentDWID = fct.StudentDWID
inner join StudentAssessmentMart.dbo.DimStateAssessmentProficiencySubject aps
on fct.StateAssessmentProficiencySubjectDMID = aps.StateAssessmentProficiencySubjectDMID
inner join StudentAssessmentMart.dbo.DimAssessmentSubject sub
on sub.AssessmentSubjectDWID = fct.AssessmentSubjectDWID
inner join StudentAssessmentMart.dbo.DimAssessmentResults dar
on dar.AssessmentScoreCategoryDWID = fct.AssessmentScoreCategoryDWID
where sai.Proficiency != 'Unknown Proficiency'
and dar.Proficiency != 'Unknown Proficiency'
and sai.StudentBKID = 174957
and sai.Subject not in ('Science','Social Studies','SocStud','Listening','writing','sci','citizenship')
and sai.gradeabbreviation not in ('k','1','2','unknown')
order by StudentBKID
select distinct min(AcademicYearNum) 'min', max(AcademicYearNum)'max', StudentBKID
into #new
from #main
group by StudentBKID
select distinct *, 'min year' as minmaxyear from #main main
inner join #new newtable
on newtable.StudentBKID = main.StudentBKID
and newtable.min=main.AcademicYearNum
where StateAssessmentProficiencySubjectName <> 'Not Applicable'
union
select distinct *, 'max year' as minmaxyear from #main main
inner join #new newtable
on newtable.StudentBKID = main.StudentBKID
and newtable.max=main.AcademicYearNum
and GradeAbbreviation = '8'
where StateAssessmentProficiencySubjectName <> 'Not Applicable'
order by main.StudentBKID
drop table #main, #new
이 문제를 해결하기위한 좋은 접근 방법을 제공하려면 좀 더 많은 정보가 필요합니다. 가장 중요한 것은 dar.AssessmentProficiencyLevelRank의 데이터 유형은 무엇입니까? –