Хорошо, я пытался осмыслить это для лучшей части дня и до сих пор не могу понять, как структурировать этот отбор.
Данные, которые мне нужно сообщить, - это возраст для данного учащегося.Основные сгруппированы за последние 3 финансовых года.Каждый финансовый год имеет 3 семестра (лето, осень, весна).Мне нужно сгруппировать мой запрос по полям fiscalyear и agerange, а затем подсчитать отдельные идентификаторы студентов.
В настоящее время у меня есть это для моего оператора SQL:
Select COUNT(distinct StuID), AgeRange, FiscalYear
from tblStatic
where Campus like 'World%' and (enrl_act like 'REG%' or enrl_act like 'SCH%')
and StuMaj = 'LAWSC' and FiscalYear IN ('09/10', '10/11', '11/12')
group by FiscalYear, AgeRange
order by FiscalYear, AgeRange
Так что все в порядке, но это не соответствует моему количеству студентов за финансовый год.Причина в том, что люди могут пересекать возрастные диапазоны в течение финансового года и добавляет их в мой счет дважды.
Как я могу использовать подвыбор, чтобы разрешить эту дублирующую запись?Поле, которое я пытался получить, - это поле моего семестра, и я использую max, чтобы найти максимальный семестр в течение финансового года для данного учащегося.
Образец данных:
Count AgeRange FiscalYear
3 1 to 19 09/10
20 20 to 23 09/10
60 24 to 29 09/10
96 30 to 39 09/10
34 40 to 49 09/10
14 50 to 59 09/10
3 60+ 09/10
2 1 to 19 10/11
24 20 to 23 10/11
73 24 to 29 10/11
109 30 to 39 10/11
43 40 to 49 10/11
11 50 to 59 10/11
2 60+ 10/11
1 1 to 19 11/12
17 20 to 23 11/12
75 24 to 29 11/12
123 30 to 39 11/12
44 40 to 49 11/12
14 50 to 59 11/12
2 60+ 11/12
Решение:(Просто получил эту работу и произвел мои численность персонала, которые соответствуют тому, что они должны быть)
Select COUNT(distinct S.StuID), AR.AgeRange, S.FiscalYear
from tblStatic S
INNER JOIN
( Select S.StuID, MIN(AgeRange) as AgeRange
From tblStatic S
Group By S.StuID) AR on S.StuID=AR.StuID
where Campus like 'World%' and (enrl_act like 'REG%' or
enrl_act like 'SCH%')
and StuMaj = 'LAWSC' and FiscalYear IN ('09/10', '10/11', '11/12')
group by S.FiscalYear, AR.AgeRange
order by S.FiscalYear, AR.AgeRange