0
這是我的查詢,我無法弄清楚爲什麼每行的結果是三倍。我試過選擇不同的。 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的數據類型是什麼? –