Consulta com soma de quantidade [RESOLVIDO]

2 respostas
P

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:
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

2 Respostas

P

Ninguém??

P

Consegui fazendo com a tabela virtual

SELECT CodTecnologia, Operadora, StatusSIMCard , COUNT(*) as Quantidade FROM (

(AQUI O SELECT POSTADO ANTERIORMENTE)

)Tabela_Virtual

GROUP BY CodTecnologia, Operadora, StatusSIMCard

Criado 27 de junho de 2013
Ultima resposta 28 de jun. de 2013
Respostas 2
Participantes 1