0

从这个查询:

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

我不想在数据透视中使用 Sum(idIndice),而是想找到一种方法来插入与其对应的值 idIndex。

这些值存储在 a.value 的 sabe 表中,这是一种简单的方法吗?无处可寻

4

1 回答 1

0

如果每个 idIndice 都有一个 a.value,那么您可以简单地使用 MIN(a.value) 或 MAX(a.value) 而不是 SUM(idIndice)

于 2012-12-21T00:20:03.397 回答