2017-05-04 5 views
0

Je voudrais créer une table d'identifiants de travail et une colonne répertoriant toutes les différentes catégories de travail qui correspondent, mais concaténées dans la même colonne. Par exemple, en ce moment le travail 82041 a deux catégories, mais retourne maintenant deux lignes. Je voudrais qu'il dise "Retail, Sales Associate", le tout dans un seul domaine.Fusionner plusieurs lignes de données dans la même colonne

Le code que j'ai essayé est ci-dessous, quelqu'un peut-il me dire ce que je fais mal?

Exemple:

jobOrderID (No column name) 

82027 Motion Graphics    
82029 Other       
82030 Product Designer    
82041 Retail       
82041 Sales Associate    
82069 Social Media  

EXEMPLE CODE:

select JobOrder.jobOrderID ,  
     stuff((select distinct ', ' + cast(Category.occupation as nchar(30)) 
       from Category 
       where Category.categoryID = JobOrderCategories.categoryID 
     for xml path ('')),1,1,'')  

from JobOrder 
left outer join JobOrderCategories 
    on JobOrder.joborderid = JobOrderCategories.jobOrderID 
left outer join Category 
    on Category.categoryID = JobOrderCategories.categoryID 

where JobOrder.dateAdded > '2017-5-2' and JobOrder.dateAdded < '2017-5-3' 
    and joborder.isDeleted = 0 

order by joborder.dateAdded asc 

Répondre

0

figured it out en modifiant la gauche rejoint

select 

JobOrder.jobOrderID, 

stuff((select distinct ', ' + cast(Category.occupation as varchar(30)) 
from Category 
left outer join JobOrderCategories on (Category.categoryID = JobOrderCategories.categoryID and joborder.jobOrderID = JobOrderCategories.joborderid) 
where Category.categoryID = JobOrderCategories.categoryID 
for xml path ('')),1,1,'') 


from JobOrder 

where JobOrder.dateAdded > '2017-5-2' and JobOrder.dateAdded < '2017-5-3' 
and joborder.isDeleted = 0 
+0

Apprenez à 'format' votre code avec' '{} dans barre d'outils. – Parfait

+0

merci pour la note! –