2017-05-25 56 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