2014-10-06 2 views
-1

я по существу есть таблица в MS Access, которая имеет зачисление студента запись, как это:зачисление заказа записей по дате каждого студента

Student ID, Приемную Дата, Приемная кодекс
12345, 8/25/2014, Е01
12345, 9/5/2014, WD02
12345, 10/3/2014, Е01
23456, 8/25/2014, Е01
34567, 8/25/2014, Е01
34567, 10/01/2014, WD03

Вышеупомянутое в основном означало бы, что учащийся 12345, зачисленный на 8/25, снял 9/5 и повторно зачислен на 10/3; Студент 23456 поступил на 8/25 и по-прежнему зачислен; Студент 34567 поступил на 8/25, отошел на 10/1 и все еще был отозван.

Мне нужно проверить порядок этих записей и убедиться, что у нас нет двух записей регистрации без перерыва между ними и другими подобными логическими ошибками, поскольку это явно не имеет смысла.

Вот проблема: я не могу понять, насколько я могу оценивать эти записи в Access! Вот что я хотел бы закончить с:

Student ID, Приемной Дата, Приемной кодекс, Разряд
12345, 8/25/2014, E01, 1
12345, 9/5/2014, WD02 , 2
12345, 10/3/2014, Е01, 3
23456, 8/25/2014, Е01, 1
34567, 8/25/2014, Е01, 1
34567, 10/01/2014 , WD03, 2

Значит, ранг должен начаться у каждого ученика. Таким образом, я могу проверить, что каждая запись с рангом нечетного числа - это E01 (так как это единственный действительный код входа) и что каждое четное число похоже на «WD *» и т. Д. Сейчас не так сложно проверить потому что по состоянию на октябрь у нас не так много движения, но по мере того, как kiddos начинают переходить и входить и выходить, это начинает занимать часы, чтобы посмотреть, нужно ли смотреть на каждого ученика, у которого есть более одной записи (что я в настоящее время делает).

Любая помощь была бы принята с благодарностью. Конечная цель состоит в том, чтобы автоматизировать это в макросе, чтобы он просто выплескивал любые сумасшедшие записи каждую неделю, и мы просто исправляем и переходим, не пересматривая каждого перешедшего ребенка.

ответ

0

Попробуйте следующее: Возможно, вам придется изменить имя поля/имя таблицы.

SELECT s.StudentID, s.EnrollmentDate, s.enrollmentcode, 

(
SELECT Count(*) 
FROM students AS t 
WHERE t.enrollmentdate < students.enrollmentdate 
AND s.studentid = t.studentid 
)+1 AS Test 

FROM students AS s 
ORDER BY s.StudentID, s.EnrollmentDate; 

Мы в основном только с помощью подачи заявок Даты как средство для упорядочивания записей, чтобы помочь нам построить из номера строки. (Я не думаю, что кто-то может уйти, прежде чем они зачислятся.)

Смежные вопросы