2012-10-24 26 views
0

我有一个查询,返回的数据看起来像。无法弄清楚如何透视和合并这些结果

PackageName SiteLocation Visible 
Package1  SiteOne  1 
Package1  SiteTwo  0 
Package1  SiteFour  1 
Package2  SiteThree  1

我所想的是数据看起来像

PackageName SiteOne SiteTwo SiteThree SiteFour 
Package1  1  0  NULL  1 
Package2  Null  Null  1   NULL

我没在现场,但结果我得到一个枢纽样子

PackageName SiteOne SiteTwo SiteThree SiteFour 
Package1  1  NULL  NULL  NULL 
Package1  NULL  0  NULL  NULL 
Package1  NULL  NULL  NULL  1 
Package2  Null  Null  1   NULL

有没有办法合并在现场转动然后合并PackageName的结果?

返回该数据的查询是一个简单的查询,只是连接在一起的外键打开SITELOCATION到一些有意义的事情,而不是FK_Id

+2

请发表您的查询,如果你有不需要的FO在查询中附加列r'PIVOT',那么你会得到这个问题。 – Taryn

回答

2

没有看到实际的查询,我猜,你有额外的字段中输入您查询是打破你的PIVOT。如果这些是你的查询返回的唯一领域,那么它应该工作:

select * 
from 
(
    select packagename, 
    sitelocation, 
    visible 
    from yourquery 
) x 
pivot 
(
    max(visible) 
    for sitelocation in ([SiteOne], [SiteTwo], [SiteThree], [SiteFour]) 
) p 

SQL Fiddle with Demo

但如果你有包含在结果等各个领域,那么PIVOT将无法​​正常工作:

select * 
from 
(
    select packagename, 
    sitelocation, 
    visible, 
    breakit 
    from yourquery 
) x 
pivot 
(
    max(visible) 
    for sitelocation in ([SiteOne], [SiteTwo], [SiteThree], [SiteFour]) 
) p 

SQL Fiddle with Demo

+0

这是额外的领域感谢您的帮助! – Josh

+0

@Josh高兴地帮忙,很高兴它的工作。 :) – Taryn