On m'a donné une feuille de calcul des élèves où 500 élèves n'ont pas de carte d'étudiant. J'ai importé cela dans SQL comme une table, je l'appellerai "table a".
J'ai une autre table avec tous les étudiants et leurs ID, avec la date de naissance, etc. Je l'appellerai "table b".
Objectif:
Copiez les identifiants de l'étudiant de la table b dans la table a. Pour ce faire, je pense que je dois mettre à jour la table en fonction du nom et de la date de naissance de l'étudiant.
Problème:
Ma requête de mise à jour duplique les identifiants des étudiants aux étudiants qui ont la même date de naissance, mais ils ont des noms de famille différents. Donc le résultat est que deux étudiants différents avec la même date de naissance finissent par avoir le même id étudiant.
Comment puis-je mettre à jour la table a avec le bon ID d'étudiant s'il vous plaît?
Ma déclaration de mise à jour actuelle qui met des identifiants en double sur le même étudiant:
UPDATE table a SET EMPStudentID = CAStudentID FROM #students WHERE EmpStudentName = CA_STUNAME AND EMP_DOB = CA_DOB
Je vous remercie.
Capture d'écran des données d'échantillon:
Code des données d'échantillon:
CREATE TABLE #students ( EMPStudentID int , EmpStudentName varchar(30) , EMP_DOB DATE , CA_DOB DATE , CA_STUNAME VARCHAR(30) , CAStudentID int ) INSERT INTO #students (EmpStudentName ,EMP_DOB ,CA_DOB ,CA_STUNAME ,CAStudentID) VALUES ('Brothers, John', '20000309', '20000309', 'Brothers, John', 1111111), ('Campbell, Thomas', '20000107', '20000107', 'Campbell, Thomas', 2222222), ('Echols, Terry', '20000309', '20000309', 'Echols, Terry', 3333333), ('Jones, Bruce', '20000518', '20000518', 'Jones, Bruce', 4444444), ('Maxwell, Lauren', '20000728', '20000728', 'Maxwell, Lauren', 5555555), ('Feldler, John', '19991026', '19991026', 'Feldler, John', 6666666), ('Jenkins, Michael', '19990322', '19990322', 'Jenkins, Michael', 7777777), ('Taylor, Greg', '20000428', '20000428', 'Taylor, Greg', 8888888), ('Williams, Gene', '20000105', '20000105', 'Williams, Gene', 9999999), ('Wynn, Charles', '20000111', '20000111', 'Wynn, Charles', 1233211) SELECT * FROM #students
Essayez ceci ci-dessous
UPDATE S SET EMPStudentID = A.CAStudentID FROM #students S INNER JOIN #TableA A ON S.EmpStudentName = A.CA_STUNAME AND S.EMP_DOB = A.CA_DOB SELECT * FROM #students