2009-06-18 10 views
3

Je souhaite extraire les données de la requête ci-dessous et joindre toutes les adresses électroniques séparées par un point-virgule groupé par le nom de l'employé.SQL - Plusieurs lignes dans une seule colonne

SELECT 
    DISTINCT 
    p.email 
    , e.name 
FROM 
    PERSON p 
INNER JOIN 
    EMPLOYEE e 
ON 
    p.agentofrecord_id = e.employee_id 
WHERE 
    dbo.GetPersonMember(p.person_id) = 1 
    AND (p.isactive = 1) 
    AND p.email <> '' 
ORDER BY name 
+0

Vous demandez comment violer 1NF, ce que SQL n'est pas vraiment conçu pour faire par exemple. le SQL Standard n'a pas de fonction de jeu 'Concatenate'. http://en.wikipedia.org/wiki/First_normal_form#Domains_and_values. – onedaywhen

+0

@onedaywhen - Il s'agit d'obtenir des adresses e-mail dans un format utilisable groupé par employé ... Rien d'autre ... Si je ne le faisais pas ici, ce serait code ou excel ... Je cherche juste quelque chose de facile à économisez du temps plus tard. – RSolberg

+0

Voir [http://stackoverflow.com/questions/905818/tsql-comma-separation/913023#913023](http://stackoverflow.com/questions/905818/tsql-comma-separation/913023#913023] – van

Répondre

5

Fondamentalement, il semble que vous voulez GROUP_CONCAT fonction d'agrégation de MySql dans TSQL. Si c'est le cas, this article peut vous aider - vérifiez!

Questions connexes