diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/HallTicketController.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/HallTicketController.java
index dad3d39b18eacb8bf07b1853274e46ac8e41c7c4..b82a7fc8ca9c7a904292259868ff5e5a7253612f 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/HallTicketController.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/HallTicketController.java
@@ -86,6 +86,7 @@ public class HallTicketController {
     @PostMapping("/dataCorrection/request")
     public ResponseEntity<ResponseDto> requestDataCorrection(
             @RequestParam("studentId") Long studentId,
+            @RequestParam("examCycleId") Long examCycleId,
             @RequestParam(value = "updatedFirstName", required = false) Optional<String> updatedFirstNameOpt,
             @RequestParam(value = "updatedLastName", required = false) Optional<String> updatedLastNameOpt,
             @RequestParam(value = "updatedDOB", required = false) Optional<String> dobOpt, // Taking as string for optional handling
@@ -96,7 +97,7 @@ public class HallTicketController {
         String updatedLastName = updatedLastNameOpt.orElse(null);
         LocalDate updatedDOB = dobOpt.isPresent() ? LocalDate.parse(dobOpt.get()) : null;
 
-        ResponseDto responseDto = hallTicketService.requestHallTicketDataCorrection(studentId, updatedFirstName, updatedLastName, updatedDOB, proof);
+        ResponseDto responseDto = hallTicketService.requestHallTicketDataCorrection(studentId,examCycleId, updatedFirstName, updatedLastName, updatedDOB, proof);
         return ResponseEntity.status(responseDto.getResponseCode().value()).body(responseDto);
     }
 
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/DataCorrectionRequest.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/DataCorrectionRequest.java
index feea047a6ac81f8929287bbb912da6959f8eeba0..0eecb6a7f293e4932864fe49501f42d97b5b578d 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/DataCorrectionRequest.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/DataCorrectionRequest.java
@@ -1,6 +1,7 @@
 package com.tarento.upsmf.examsAndAdmissions.model.dto;
 
 import com.tarento.upsmf.examsAndAdmissions.model.Exam;
+import com.tarento.upsmf.examsAndAdmissions.model.ExamCycle;
 import com.tarento.upsmf.examsAndAdmissions.model.Student;
 import lombok.*;
 
@@ -20,6 +21,9 @@ public class DataCorrectionRequest {
     @ManyToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "student_id")
     private Student student;
+    @ManyToOne(fetch = FetchType.EAGER)
+    @JoinColumn(name = "exam_cycle_id")
+    private ExamCycle examCycle;
     private String requestedCorrection;
     private String status;
     private String rejectionReason;
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentExamRegistrationRepository.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentExamRegistrationRepository.java
index be2e6ec4bf7423f33e18b55405605aac83b35bc5..d9d376fb5281eb790890cb1fd49067c99170309d 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentExamRegistrationRepository.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentExamRegistrationRepository.java
@@ -58,4 +58,7 @@ public interface StudentExamRegistrationRepository extends JpaRepository<Student
 
     @Query("SELECT s FROM Student s WHERE s.verificationStatus = com.tarento.upsmf.examsAndAdmissions.enums.VerificationStatus.VERIFIED AND s.institute.id = :instituteId AND NOT EXISTS (SELECT ser FROM StudentExamRegistration ser WHERE ser.student.id = s.id AND ser.examCycle.id = :examCycleId)")
     List<Student> findVerifiedStudentsNotRegisteredForExamCycleByInstitute(Long examCycleId, Long instituteId);
+    StudentExamRegistration getByStudentId(Long id);
+
+    StudentExamRegistration getByStudentIdAndExamCycleId(Long studentId, Long examCycleId);
 }
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
index deca016259a76f8367f96441a3527f53d1e59b65..0f955088eb4697bbb88e99cdb98015976faa488e 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/repository/StudentResultRepository.java
@@ -39,11 +39,12 @@ public interface StudentResultRepository extends JpaRepository<StudentResult, Lo
     @Transactional
     @Query("UPDATE StudentResult sr SET sr.externalMarks = null, sr.passingExternalMarks = null, sr.externalMarksObtained = null, sr.finalMarkFlag = false, sr.published = false WHERE sr.examCycle_name = :examCycleName AND sr.instituteId = :instituteId")
     int setExternalMarksToNull(@Param("examCycleName") String examCycleName, @Param("instituteId") Long instituteId);
-    @Query("SELECT sr FROM StudentResult sr WHERE sr.firstName = :firstName AND sr.lastName = :lastName AND sr.enrollmentNumber = :enrollmentNumber")
-    StudentResult findByFirstNameAndLastNameAndEnrollmentNumber(
+    @Query("SELECT sr FROM StudentResult sr WHERE sr.firstName = :firstName AND sr.lastName = :lastName AND sr.enrollmentNumber = :enrollmentNumber AND sr.exam_name = :examName")
+    StudentResult findByFirstNameAndLastNameAndEnrollmentNumberAndExamName(
             @Param("firstName") String firstName,
             @Param("lastName") String lastName,
-            @Param("enrollmentNumber") String enrollmentNumber
+            @Param("enrollmentNumber") String enrollmentNumber,
+            @Param("examName") String examName
     );
 
     Optional<StudentResult> findByExamId(Long id);
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/DataImporterService.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/DataImporterService.java
index 6544c97158f4488e4353228527147ab811560f02..34411026cbf6d109210ea0fbe0972c673f97adcb 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/DataImporterService.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/DataImporterService.java
@@ -425,7 +425,7 @@ public class DataImporterService {
                 }
             }
             if (validationErrors.isEmpty()) {
-                StudentResult existingEntity = repository.findByFirstNameAndLastNameAndEnrollmentNumber(dto.getFirstName(), dto.getLastName(), dto.getEnrollmentNumber());
+                StudentResult existingEntity = repository.findByFirstNameAndLastNameAndEnrollmentNumberAndExamName(dto.getFirstName(), dto.getLastName(), dto.getEnrollmentNumber(), dto.getExam_name());
                 List<StudentResult> marks = calculateResult(existingEntity.getInternalMarks(), existingEntity.getPassingInternalMarks(), existingEntity.getInternalMarksObtained(), existingEntity.getPracticalMarks(),
                         existingEntity.getPassingPracticalMarks(), existingEntity.getPracticalMarksObtained(), dto.getExternalMarks(), dto.getPassingExternalMarks(), dto.getExternalMarksObtained());
 
@@ -483,7 +483,7 @@ public class DataImporterService {
                 }
             }
             if (validationErrors.isEmpty()) {
-                StudentResult existingEntity = repository.findByFirstNameAndLastNameAndEnrollmentNumber(dto.getFirstName(), dto.getLastName(), dto.getEnrollmentNumber());
+                StudentResult existingEntity = repository.findByFirstNameAndLastNameAndEnrollmentNumberAndExamName(dto.getFirstName(), dto.getLastName(), dto.getEnrollmentNumber(),dto.getExam_name());
                 List<StudentResult> marks = calculateResult(existingEntity.getInternalMarks(), existingEntity.getPassingInternalMarks(), existingEntity.getInternalMarksObtained(), existingEntity.getPracticalMarks(),
                         existingEntity.getPassingPracticalMarks(), existingEntity.getPracticalMarksObtained(), dto.getExternalMarks(), dto.getPassingExternalMarks(), dto.getExternalMarksObtained());
 
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/HallTicketService.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/HallTicketService.java
index 52a2b73528a3968aaf4bd530e53adcb47ebabac5..0609cc938bc4741998826cb7de3316da0af3e329 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/HallTicketService.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/HallTicketService.java
@@ -51,6 +51,8 @@ public class HallTicketService {
     DataCorrectionRequestRepository dataCorrectionRequestRepository;
     @Autowired
     private StudentRepository studentRepository;
+    @Autowired
+    private ExamCycleRepository examCycleRepository;
 
     @Autowired
     private StudentExamRegistrationRepository studentExamRegistrationRepository;
@@ -253,6 +255,7 @@ public class HallTicketService {
     }
 
     public ResponseDto requestHallTicketDataCorrection(Long studentId,
+                                                       Long examCycleId,
                                                        String updatedFirstName,
                                                        String updatedLastName,
                                                        LocalDate updatedDOB,
@@ -271,6 +274,12 @@ public class HallTicketService {
                 setErrorResponse(response, "PROOF_MISSING", "Proof attachment is required", HttpStatus.BAD_REQUEST);
                 return response;
             }
+            Optional<ExamCycle> optionalExamCycle = examCycleRepository.findById(examCycleId);
+
+            if (!optionalExamCycle.isPresent()) {
+                setErrorResponse(response, "INVALID_EXAMCYCLEID", "Invalid ExamCycle ID", HttpStatus.BAD_REQUEST);
+                return response;
+            }
 
             DataCorrectionRequest request = new DataCorrectionRequest();
             request.setStudent(optionalStudent.get());
@@ -283,6 +292,7 @@ public class HallTicketService {
             if (updatedDOB != null) {
                 request.setUpdatedDOB(updatedDOB);
             }
+            request.setExamCycle(optionalExamCycle.get());
             request.setStatus("NEW");
 
             String path = studentService.storeFile(proof);
@@ -330,7 +340,7 @@ public class HallTicketService {
                 formattedRequest.put("lastName", student.getSurname());  // changed from 'surName'
                 formattedRequest.put("enrollmentNumber", student.getEnrollmentNumber());
 
-                StudentExamRegistration registration = studentExamRegistrationRepository.findByStudent(student);
+                StudentExamRegistration registration = studentExamRegistrationRepository.getByStudentIdAndExamCycleId(student.getId(),request.getExamCycle().getId());
                 if (registration != null) {
                     Map<String, Object> examCycleData = new HashMap<>();
                     ExamCycle examCycle = registration.getExamCycle();
diff --git a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
index f41a91b25408887c22e70450da0620133008112a..45ad381e72934b35cf155ada8a53b0e384b856b0 100644
--- a/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
+++ b/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentResultService.java
@@ -659,7 +659,7 @@ public class StudentResultService {
                     // Handle unsupported file type
                     return ResponseDto.setErrorResponse(response, "UNSUPPORTED_FILE_TYPE", "Unsupported file type", HttpStatus.BAD_REQUEST);
             }
-            String[] selectedColumns = { "First Name", "Last Name", "Enrolment Number","External Marks", "Passing External Marks", "External Marks Obtained" };
+            String[] selectedColumns = { "First Name", "Last Name", "Enrolment Number", "Exam", "External Marks", "Passing External Marks", "External Marks Obtained" };
             JSONArray filteredJsonArray = dataImporterService.filterColumns(jsonArray, selectedColumns);
             List<StudentResult> dtoList = dataImporterService.convertJsonToDtoList(filteredJsonArray, StudentResult.class);
             ValidationResultDto validationResult = dataImporterService.convertResultDtoListToEntitiesExternalMarks(dtoList, studentResultRepository);
@@ -698,7 +698,7 @@ public class StudentResultService {
                     // Handle unsupported file type
                     return ResponseDto.setErrorResponse(response, "UNSUPPORTED_FILE_TYPE", "Unsupported file type", HttpStatus.BAD_REQUEST);
             }
-            String[] selectedColumns = { "First Name", "Last Name", "Enrolment Number","External Marks", "Passing External Marks", "External Marks Obtained" };
+            String[] selectedColumns = { "First Name", "Last Name", "Enrolment Number", "Exam", "External Marks", "Passing External Marks", "External Marks Obtained" };
             JSONArray filteredJsonArray = dataImporterService.filterColumns(jsonArray, selectedColumns);
             List<StudentResult> dtoList = dataImporterService.convertJsonToDtoList(filteredJsonArray, StudentResult.class);
             ValidationResultDto validationResult = dataImporterService.convertResultDtoListToEntitiesRevisedMarks(dtoList, studentResultRepository);