Sql 更改PIVOT函数以添加相应的值而不是总和

Sql 更改PIVOT函数以添加相应的值而不是总和,sql,sql-server,database,sql-server-2008,sql-server-2005,Sql,Sql Server,Database,Sql Server 2008,Sql Server 2005,通过此查询: DECLARE @cols VARCHAR(1000) DECLARE @sqlquery VARCHAR(2000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName(idIndice) FROM tgpwebged.dbo.sistema_Indexacao as a FOR XML PATH('') ), 1, 1,

通过此查询:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName(idIndice)
                        FROM tgpwebged.dbo.sistema_Indexacao as a FOR XML PATH('')
                        ), 1, 1, '')      

SET @sqlquery = 'SELECT * FROM
      (      
        select distinct a.id, b.idIndice  
        from tgpwebged.dbo.sistema_Documentos as a  
        join tgpwebged.dbo.sistema_Indexacao as b on a.id = b.idDocumento 
        join tgpwebged.dbo.sistema_DocType as c on a.idDocType = c.id
        join tgpwebged.dbo.sistema_DocType_Index as d on c.id = d.docTypeId 
        where d.docTypeId = 40      
        and (b.idIndice = 11 AND b.valor = ''11111111'' OR b.idIndice = 12 AND b.valor = ''11111'')       
       ) base
       PIVOT 
       (
        Sum(idIndice) 
        FOR [idIndice] IN (' + @cols + ')
        ) AS finalpivot' 

EXECUTE ( @sqlquery )
我得到这个结果:

id  10      11     12   13      9
13  NULL    11     12   NULL    NULL
14  NULL    11     12   NULL    NULL
16  NULL    NULL   12   NULL    NULL
我不想在pivot中使用Sum(ididice),而是想找到一种方法来插入与之对应的值idIndex

这些值以.value存储在sabe表中
这是一种简单的方法吗?在任何地方都找不到这个

如果每个ididice只有一个a.value,那么您可以简单地使用MIN(a.value)或MAX(a.value)代替SUM(ididice)