123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- select
- schoolyear.Code as SchoolyearCode,
- classCount.*,
- StudentMaleCount.StudentMaleCount,
- StudentFemaleCount.StudentFemaleCount
- from (
- select
- campus.CampusID,
- campus.No as CampusNo,
- campus.Name as CampusName,
- college.CollegeID,
- college.No as CollegeNo,
- college.Name as CollegeName,
- faculty.StandardID,
- [standard].Name as StandardName,
- grade.GradeID as GradeYear,
- faculty.EducationID,
- education.Name as EducationName,
- student.StudentType,
- studentType.Name as StudentTypeName,
- COUNT(distinct class.ClassmajorID) as ClassmajorCount
- from [dbo].CF_Campus campus
- inner join [dbo].[CF_College] college on college.CampusID =campus.CampusID
- inner join [dbo].[CF_Facultymajor] faculty on college.CollegeID=faculty.CollegeID
- inner join [dbo].[CF_Grademajor] grade on faculty.FacultymajorID=grade.FacultymajorID
- inner join [dbo].[CF_Classmajor] class on grade.GrademajorID=class.GrademajorID
- inner join [dbo].[CF_Student] student on class.ClassmajorID=student.ClassmajorID
- inner join [dbo].[Sys_DictionaryItem] [standard] on faculty.StandardID=[standard].Value and [standard].DictionaryCode='CF_Standard'
- inner join [dbo].[Sys_DictionaryItem] education on faculty.EducationID=education.Value and education.DictionaryCode='CF_Education'
- inner join [dbo].[Sys_DictionaryItem] studentType on student.StudentType=studentType.Value and studentType.DictionaryCode='CF_STUDENTTYPE'
- left join [dbo].[CF_InSchoolSetting] inschoolset on student.InSchoolStatusID=inschoolset.InSchoolStatusID
- where
- ((@InSchoolStatusID is null or @InSchoolStatusID=0)
- or (case when @InSchoolStatusID=1 then 1 else 0 end=ISNULL(inschoolset.IsSelected,0)))
- group by campus.CampusID,campus.No,campus.Name,college.CollegeID,college.No,college.Name,faculty.StandardID,[standard].Name,grade.GradeID,faculty.EducationID,education.Name,student.StudentType,studentType.Name) classCount
- left join
- (select
- campus.CampusID,
- campus.Name as CampusName,
- college.CollegeID,
- college.Name as CollegeName,
- faculty.StandardID,
- [standard].Name as StandardName,
- grade.GradeID as GradeYear,
- faculty.EducationID,
- education.Name as EducationName,
- student.StudentType,
- studentType.Name as StudentTypeName,
- student.SexID AS Sex,
- sex.Name as SexName,
- COUNT(distinct student.UserID) as StudentMaleCount
- from [dbo].CF_Campus campus
- inner join [dbo].[CF_College] college on college.CampusID =campus.CampusID
- inner join [dbo].[CF_Facultymajor] faculty on college.CollegeID=faculty.CollegeID
- inner join [dbo].[CF_Grademajor] grade on faculty.FacultymajorID=grade.FacultymajorID
- inner join [dbo].[CF_Classmajor] class on grade.GrademajorID=class.GrademajorID
- inner join [dbo].[CF_Student] student on class.ClassmajorID=student.ClassmajorID
- inner join [dbo].[Sys_DictionaryItem] [standard] on faculty.StandardID=[standard].Value and [standard].DictionaryCode='CF_Standard'
- inner join [dbo].[Sys_DictionaryItem] education on faculty.EducationID=education.Value and education.DictionaryCode='CF_Education'
- inner join [dbo].[Sys_DictionaryItem] sex on student.SexID=sex.Value and sex.DictionaryCode='CF_Sex'
- inner join [dbo].[Sys_DictionaryItem] studentType on student.StudentType=studentType.Value and studentType.DictionaryCode='CF_STUDENTTYPE'
- left join [dbo].[CF_InSchoolSetting] inschoolset on student.InSchoolStatusID=inschoolset.InSchoolStatusID
- where ((@InSchoolStatusID is null or @InSchoolStatusID=0)
- or (case when @InSchoolStatusID=1 then 1 else 0 end=ISNULL(inschoolset.IsSelected,0)))
- group by campus.CampusID,campus.Name,college.CollegeID,college.Name,faculty.StandardID,[standard].Name,grade.GradeID,
- faculty.EducationID,education.Name,student.StudentType,studentType.Name,student.SexID,sex.Name,sex.Code having sex.Code='Male'
- ) studentMaleCount
- on classCount.CampusID=studentMaleCount.CampusID
- and classCount.CollegeID=studentMaleCount.CollegeID
- and classCount.StandardID=studentMaleCount.StandardID
- and classCount.GradeYear=studentMaleCount.GradeYear
- and classCount.EducationID=studentMaleCount.EducationID
- and classCount.StudentType=studentMaleCount.StudentType
- left join
- (select campus.CampusID,campus.Name as CampusName,college.CollegeID,college.Name as CollegeName,
- faculty.StandardID,[standard].Name as StandardName,grade.GradeID as GradeYear,
- faculty.EducationID,education.Name as EducationName,student.StudentType,studentType.Name as StudentTypeName,
- student.SexID AS Sex,sex.Name as SexName,
- COUNT(distinct student.UserID) as StudentFemaleCount
- from [dbo].CF_Campus campus
- inner join [dbo].[CF_College] college on college.CampusID =campus.CampusID
- inner join [dbo].[CF_Facultymajor] faculty on college.CollegeID=faculty.CollegeID
- inner join [dbo].[CF_Grademajor] grade on faculty.FacultymajorID=grade.FacultymajorID
- inner join [dbo].[CF_Classmajor] class on grade.GrademajorID=class.GrademajorID
- inner join [dbo].[CF_Student] student on class.ClassmajorID=student.ClassmajorID
- inner join [dbo].[Sys_DictionaryItem] [standard] on faculty.StandardID=[standard].Value and [standard].DictionaryCode='CF_Standard'
- inner join [dbo].[Sys_DictionaryItem] education on faculty.EducationID=education.Value and education.DictionaryCode='CF_Education'
- inner join [dbo].[Sys_DictionaryItem] sex on student.SexID=sex.Value and sex.DictionaryCode='CF_Sex'
- inner join [dbo].[Sys_DictionaryItem] studentType on student.StudentType=studentType.Value and studentType.DictionaryCode='CF_STUDENTTYPE'
- left join [dbo].[CF_InSchoolSetting] inschoolset on student.InSchoolStatusID=inschoolset.InSchoolStatusID
- where ((@InSchoolStatusID is null or @InSchoolStatusID=0)
- or (case when @InSchoolStatusID=1 then 1 else 0 end=ISNULL(inschoolset.IsSelected,0)))
- group by campus.CampusID,campus.Name,college.CollegeID,college.Name,faculty.StandardID,[standard].Name,grade.GradeID,
- faculty.EducationID,education.Name,student.StudentType,studentType.Name,student.SexID,sex.Name,sex.Code having sex.Code='Female'
- ) studentFemaleCount
- on classCount.CampusID=studentFemaleCount.CampusID
- and classCount.CollegeID=studentFemaleCount.CollegeID
- and classCount.StandardID=studentFemaleCount.StandardID
- and classCount.GradeYear=studentFemaleCount.GradeYear
- and classCount.EducationID=studentFemaleCount.EducationID
- and classCount.StudentType=studentFemaleCount.StudentType
- inner join CF_Schoolyear schoolyear on schoolyear.IsCurrent=1
- order by classCount.CampusNo,classCount.CollegeNo
|