Pessoal beleza?
Tenho uma consulta no BD, onde tenho que pegar quantos registros retornam no select… só que utilizo o STRINGAGG, para juntar dois resultados, e por causa disso, está pegando a quantidade de todos os registros e não está contando as duas linhas como uma… e sim as duas…
Exemplo, tenho 3 linhas resultado… e 2 deles são de fonte diferente… meu select junta esses dois resultados… só que a Quantidade deveria ser por 2… mas retorna 3…
Minha Consulta:
[code]
SELECT (SELECT Dominio.Nome FROM Dominio WHERE Dominio.Codigo = Dispositivo.CodigoTecnologia) AS CodTecnologia,
(SELECT Dominio.Nome FROM Dominio WHERE Dominio.Codigo = SIMCard.CodigoOperadora) AS Operadora,
(SELECT Dominio.Nome FROM Dominio WHERE Dominio.Codigo = Linha.CodigoStatusLinha) AS StatusLinha,
string_agg((SELECT Dominio.Nome FROM Dominio WHERE Dominio.Codigo = Processamento.CodigoFonteDados), ‘/’ ORDER BY CodigoFonteDados) AS Fonte,
COUNT(*) as Quantidade
FROM SIMCard LEFT JOIN SIMCardDispositivo ON SIMCardDispositivo.SIMCard_Numero = SIMCard.Numero
LEFT JOIN Dispositivo ON Dispositivo.Numero = SIMCardDispositivo.Dispositivo_Numero
INNER JOIN Linha ON Linha.Numero = SIMCard.NumeroLinha
LEFT JOIN Processamento ON (Processamento.Codigo = SIMCard.CodigoProcessamento OR Processamento.Codigo = Dispositivo.CodigoProcessamento)
WHERE (
Dispositivo.CodigoTecnologia IN (90,91,92,93,94,95,96)
AND SIMCard.CodigoOperadora IN (30,31,32,33)
AND Linha.CodigoStatusLinha IN (50,51,52)
)
GROUP BY CodTecnologia, Operadora, StatusLinha
ORDER BY CodTecnologia, Operadora, StatusLinha[/code]