Sql 多个和多个语句

Sql 多个和多个语句,sql,case,Sql,Case,我正在尝试确定某个记录在这两个年份中何时均为AtAboveBelowGradeLevel=1。换句话说,我将如何处理下面的案例陈述 SELECT AcademicYear ,SchoolName ,Subject ,LastName ,firstname ,StudentBKID ,AtAboveBelowGradeLevelCount ,CASE WHEN AtAboveBelowGradeLevelCount = 1

我正在尝试确定某个记录在这两个年份中何时均为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

这是一个简化版本

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
上进行了筛选,因此您只需要有条件的计数,以便查看其中有多少是
在地下