A mi entender existen dos tipos de bases, las que son unitarias y las transaccionales.

Las Unitarias son aquellas en donde la información de cada registro se refiere a un único objeto irrepetible en la base, por ejemplo la lista de alumnos inscritos a un periodo escolar.

Transaccionales son aquellas donde el objeto principal existe varias veces en el contenido de la información, por ejemplo en una tabla de exámenes realizados, el alumno que aplica el examen puede existir varias veces en la tabla.

 

Obtener el primer o ultimo registro de un grupo en un DATA.

PROC SORT
 DATA = Examenes ;
  BY AlumnoId FechaExamen ;
RUN;

DATA PrimerExamen UltimoExamen ;
 SET Examenes ;
 BY AlumnoId ;
 IF FIRTS.AlumnoId THEN OUTPUT PrimerExamen ;
 ELSE IF LAST.AlumnoId THEN OUTPUT UltimoExamen ;
RUN ;

 

Resultado: El DATA PrimerExamen contiene un único registro por AlumnoId y representa al primer examen realizado. El DATA UltimoExamen también contiene un único registro por alumno y contiene la información del ultimo examen realizado por el alumno.

¿Que te parecio el contenido?