2017-05-25 51 views
0

我試圖確定兩年的記錄何時有AtAboveBelowGradeLevel = 1。換句話說,我將如何處理下面的案例陳述?倍數和語句

SELECT AcademicYear 
    ,SchoolName 
    ,Subject 
    ,LastName 
    ,firstname 
    ,StudentBKID 
    ,AtAboveBelowGradeLevelCount 
    ,CASE 
     WHEN AtAboveBelowGradeLevelCount = 1 
      AND AcademicYear = '2015-2016' 
      AND AcademicYear = '2016-2017' 
      AND AtAboveBelowGradeLevelCount = 1 
      THEN 'TRUE' 
     ELSE 'NO' 
     END 
FROM StudentAssessmentMart.dbo.vwMAPAssessmentInformation 
WHERE AcademicYear IN (
     '2015-2016' 
     ,'2016-2017' 
     ) 
    AND SchoolName LIKE 'alliance%' 
    AND subject IN ('math') 
    AND StudentBKID IN (
     '473106' 
     ,'420219' 
     ) 
    AND CalendarPeriodName = 'spring' 
GROUP BY AcademicYear 
    ,SchoolName 
    ,Subject 
    ,LastName 
    ,firstname 
    ,StudentBKID 
    ,AtAboveBelowGradeLevelCount 
ORDER BY StudentBKID 
    ,AcademicYear 

回答

0

這是一個簡化版本

SELECT 
    StudentBKID 
    ,CASE 
     WHEN COUNT(CASE WHEN AtAboveBelowGradeLevelCount = 1 THEN 1 END) = 2 
     THEN 'TRUE' 
     ELSE 'NO' 
    END 
FROM StudentAssessmentMart.dbo.vwMAPAssessmentInformation 
WHERE AcademicYear IN ('2015-2016','2016-2017') 
    AND SchoolName LIKE 'alliance%' 
    AND subject IN ('math') 
    AND StudentBKID IN ('473106','420219') 
    AND CalendarPeriodName = 'spring'  
GROUP BY StudentBKID 

年是在WHERE已經篩選,所以你只需要一個條件計數所以看看有多少是AboveBelowGrade