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)