2017-09-25 4 views
1

Je travaille avec DatMart avec n'importe quel outil. J'ai table où il liste les détails de l'étudiant.Datamart - Type de table

SystudentID Campus FirstNAme LastName 
    8   AICASA Ali  Mehdi 
    9   AICASA Ashka  Patel 
    10   AICASA Jane  Iwuchukwu-Brooks 
    11   AICASA Helen  Oredeko 

Un étudiant peut s'inscrire dans plusieurs programmes comme ci-dessous. (Il est pas fixe)

AdEnrollID SyStudentId Program Term 
2671 9 AICASA Fall - 2009 AICASA     
2537 11 AICASA Spring - 2009 AICASA    
2634 8 AICASA Fall - 2010 AICASA     
1853 10 AICASA Fall - 2008 AICASA 

Maintenant, je suis la combinaison de ces deux tables et je veux faire une table REP_student où tous les détails je veux . Mais ça ne devrait pas me donner deux rangs. (S'il vous plaît voir la structure de la table) Y at-il un type de table en SQL. Quel est le meilleur moyen de l'atteindre?

SystudentID Campus FirstNAme LastName AdEnrollID SyStudentId Program Term 

Merci

Répondre

2

Vous pouvez utiliser une JOIN SQL pour cela. Ici, je suppose que vous voulez afficher uniquement les enregistrements où la table 1 a un enregistrement connexe dans le tableau 2, en utilisant INNER JOIN. Si vous voulez un résultat différent, vous pouvez essayer LEFT JOIN ,RIGHT JOIN OR FULL OUTER JOIN selon vos besoins.

SELECT S.SystudentID ,S.Campus,S.FirstNAme,S.LastName,C.AdEnrollID,C.SyStudentId,C.Program,C.Term 
FROM table1_name S 
INNER JOIN table2_name C 
ON S.SystudentID = C.SystudentID; 

Si vous voulez une nouvelle table tout, je propose de créer une nouvelle table séparément et utiliser dans une requête INSERT pour insérer vos deux valeurs existantes de la table.

INSERT INTO new_table_name(SystudentID,Campus,FirstNAme,LastName,AdEnrollID,New_SyStudentId,Program,Term) 
SELECT S.SystudentID ,S.Campus,S.FirstNAme,S.LastName,C.AdEnrollID,C.SyStudentId,C.Program,C.Term 
FROM table1_name S 
INNER JOIN table2_name C 
ON S.SystudentID = C.SystudentID; 

Vous devrez peut-être envisager de supprimer l'un des SyStudentId de la nouvelle table et la requête car il est très probablement un double value.Here Je l'ai juste inclus puisque vous avez mentionné que vous avez besoin dans la table de sortie .