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 に 1 つの a.value がある場合は、SUM(idIndice) の代わりに MIN(a.value) または MAX(a.value) を使用できます。

于 2012-12-21T00:20:03.397 に答える