2010-12-10 102 views
1

Dans SQL Server 2008, j'ai ci-dessous le tableau Score. Je veux montrer Score1 et Score2 ensemble pour le même étudiant. Le nom et le courriel combinés identifient de façon unique un étudiant (le nom ou le courriel peut aussi être manquant, comme Jack et [email protected]). La sortie attendue représentée par T_Combined.T-SQL Fusionner des enregistrements basés sur les critères

Score

Name Email Score1 Score2 
John '[email protected]' 75 
Peter '[email protected]' 34 
Nina '[email protected]' 45 
Joseph '[email protected]' 76 
Tom '[email protected]' 43 
Sam '[email protected]' 76 
Nancy '[email protected]' 12 
Tina '[email protected]' 56 
John '[email protected]' 98 
Peter '[email protected]' 12 
Nina '[email protected]' 45 
Joseph '[email protected]' 87 
Tom '[email protected]' 67 
Sam '[email protected]' 99 
Nancy '[email protected]' 33 
Tina '[email protected]' 23 
John '[email protected]'  86 
Peter '[email protected]'  56 
Nina '[email protected]'  98 
Joseph '[email protected]'  78 
Tom '[email protected]'  12 
Sam '[email protected]'  45 
Nancy '[email protected]'  76 
Tina '[email protected]'  78 
John '[email protected]'  98 
Peter '[email protected]'  45 
Nina '[email protected]'  76 
Joseph '[email protected]'  12 
Tom '[email protected]'  84 
Sam '[email protected]'  27 
Nancy '[email protected]'  54 
Tina '[email protected]'  50 
Jack  10 
'[email protected]'  20 

T_Combined

Name Email Score1 Score2 
John '[email protected]'  86 
Peter '[email protected]'  56 
Nina '[email protected]'  98 
Joseph '[email protected]' 78 
Tom '[email protected]' 43 12 
Sam '[email protected]' 76 45 
Nancy '[email protected]' 12 
Tina '[email protected]' 56 
John '[email protected]ars.com' 98 
Peter '[email protected]' 12 
Nina '[email protected]' 45 76 
Joseph '[email protected]' 87 12 
Tom '[email protected]' 67 84 
Sam '[email protected]' 99 27 
Nancy '[email protected]' 33 54 
Tina '[email protected]' 23 50 
Jack  10 
'[email protected]'  20 

Un grand merci

Création de la table Score (Nom varchar (20), Email varchar (20), Score1 int, Score2 int)

insérer dans les valeurs Score (Name, Email, Score1) ('John', 'John @ pluto.com', 75) insérer dans Score (Name, Email, Score1) valeurs ('Peter', 'Peter @ pluto.com', 34) insérer dans Score (Name, Email, Score1) valeurs ('Nina', '[email protected] ', 45) insérer dans Score (Name, Email, Score1) valeurs (' Joseph ',' Joseph @ pluto.com ', 76) insérer dans Score (Name, Email, Score1) valeurs (' Tom ',' Tom @ pluto.com ', 43) insérer dans les valeurs Score (Name, Email, Score1) (' Sam ',' Sam @ pluto.com ', 76) insérer dans les valeurs Score (Name, Email, Score1) (' Nancy ',' Nancy @ pluto.com ', 12) insérer dans Score (Nom, Email, Score1) valeurs (' Tina ',' Tina @ pluto.com ', 56) insérer dans Score (Nom, Email, Score1) valeurs ('John', 'John @ mars.com', 98) insérer dans Score (Name, Email, Score1) valeurs ('Peter', 'Peter @ mars.com', 12) insérer dans Score (Nom, Email, Score1) valeurs ('Ni na ',' Nina @ mars.com ', 45) insérer dans Score (Name, Email, Score1) valeurs (' Joseph ',' Joseph @ mars.com ', 87) insérer dans Score (Nom, Email, Score1) valeurs ('Tom', 'Tom @ mars.com', 67) insérer dans Score (Name, Email, Score1) valeurs ('Sam', 'Sam @ mars.com', 99) insérer dans Score (Nom , Email, Score1) valeurs ('Nancy', 'Nancy @ mars.com', 33) insérer dans Score (Nom, Email, Score1) valeurs ('Tina', 'Tina @ mars.com', 23)

insérer dans les valeurs Score (Name, Email, Score2) ('John', 'John @ pluto.com', 86) insérer dans les valeurs Score (Name, Email, Score2) ('Peter', 'Peter @ pluto. com ', 56) insérer dans Score (Name, Email, Score2) valeurs (' Nina ',' Nina @ pluto.com ', 98) insérer dans la partition (Nom , Email, Score2) valeurs ('Joseph', 'Joseph @ pluto.com', 78) insérer dans Score (Nom, Email, Score2) valeurs ('Tom', 'Tom @ pluto.com', 12) insérer en valeurs Score (Name, Email, Score2) ('Sam', 'Sam @ pluto.com', 45) insérer dans les valeurs Score (Name, Email, Score2) ('Nancy', '[email protected]', 76) insérer dans les valeurs Score (Name, Email, Score2) ('Tina', 'Tina @ pluto.com', 78) insérer dans les valeurs Score (Name, Email, Score2) ('John', 'John @ mars .com ', 98) insérer dans les valeurs Score (Name, Email, Score2) (' Peter ',' Peter @ mars.com ', 45) insérer dans les valeurs Score (Name, Email, Score2) (' Nina ', 'Nina @ mars.com', 76) insérer dans les valeurs Score (Name, Email, Score2) ('Joseph', 'Joseph @ mars.com', 12) insérer dans les valeurs Score (Name, Email, Score2) ('Tom', 'Tom @ mars.com', 84) insérer dans les valeurs Score (Name, Email, Score2) ('Sam', 'Sam @ mars.com', 27) insérer dans les valeurs Score (Name, Email, Score2) ('Nancy', '[email protected] ', 54) insérer dans Score (Name, Email, Score2) valeurs (' Tina ',' Tina @ mars.com ', 50)

insérer dans Score (Name, Score1) valeurs (' Jack ', 10 insérer dans les valeurs Score (Email, Score2) ('Maya @ moon.com ', 20)

+1

Pouvez-vous mieux formater votre question? Sélectionnez les données de la table et utilisez Ctrl-K pour le formater en code. – Rudi

Répondre

2
select Name, Email, isnull(SUM(Score1),'') as Score1, isnull(SUM(Score2),'') as Score2 
    from Score 
    group by Name, Email 
+0

Excellent travail monsieur !! – user219628