es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Quiero poder buscar la escuela previa a la que un estudiante abandonó para comenzar una nueva escuela? (Función de búsqueda)

En nuestra base de datos, hay una lista de escuelas a las que un alumno asiste a lo largo de su vida. He adjuntado una foto a continuación para mostrar cómo está estructurada, recortando los elementos de confidencialidad.

Imagen

Ya tengo un conjunto de datos principal donde debe colocarse información específica y el “nombre histórico de la escuela” debe estar en otro conjunto de datos.

Por lo tanto, necesito realizar una función de búsqueda para llevar el nombre histórico de la escuela al informe de la siguiente manera: “=busqueda(Campos!ChildIDSystemRef.Value, Campos!ChildIDSystemRef.Value, Campos!SchoolDetailsName.Value, “Attendance_Data”)”

El problema es que trae cualquier escuela aleatoria sin un orden lógico. Necesito la escuela anterior más reciente a la que asistieron antes de la escuela a la que asisten actualmente. No tengo idea de cómo hacer esto ya que no hay número de identificación ni nada por el estilo.

La única forma en que se me ocurre es utilizando las fechas en que asistieron a la escuela y realizar una expresión que diga justo antes de la nueva escuela en la que comenzaron. No tendrán una “Fecha de finalización” en la escuela a la que asisten actualmente.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en SQL-Server y Reporting Services, puedo sugerir la siguiente solución para el problema:

    1. Puedes crear un nuevo conjunto de datos donde recuperes el ID del niño, el nombre histórico de la escuela y las fechas de inicio y fin de cada período de asistencia.
    2. Luego, puedes unir este conjunto de datos con el conjunto de datos principal utilizando el ID del niño y ordenar los resultados por la fecha de fin en orden descendente. Esto te dará el período de asistencia más reciente primero para cada niño.

    3. Finalmente, puedes utilizar la función de búsqueda para recuperar el nombre histórico de la escuela para el período de asistencia más reciente antes del actual en el que se encuentra.

    La consulta de SQL para el nuevo conjunto de datos podría ser algo como esto:

    SELECT Child_ID__System_Ref_, School_Details_Name, Attendance_Start_Date, Attendance_End_Date
    FROM Attendance_Data
    ORDER BY Child_ID__System_Ref_, Attendance_End_Date DESC
    

    Y la expresión de la función de búsqueda en el informe podría ser algo como esto:

    =lookup(Fields!Child_ID__System_Ref_.Value, Fields!Child_ID__System_Ref_.Value, Fields!School_Details_Name.Value, "New_Dataset")
    

    Esto debería proporcionarte la última escuela anterior a la que el niño asistió antes de su escuela actual.

Comments are closed.