繁体   English   中英

将多行数据合并到同一列中

[英]Merging multiple rows of data into same column

我想创建一个工作ID表和一个列,列出所有匹配的不同工作类别,但它们串联在同一列中。 例如,现在作业82041具有两个类别,但是现在返回两行。 我想在一个字段中全部说“零售,销售助理”。

我尝试过的代码如下,有人可以告诉我我做错了什么吗?

例:

jobOrderID  (No column name)

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

示例代码:

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

通过更改左连接来解决

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM