Usuário com melhor resposta
SUM e COUNT

Pergunta
-
Amigos, bom dia.
Gostaria por favor, de uma ajuda para o caso abaixo:
TB_Computador ((PK)ID, Hostname) valores(1,nome_computador)
TB_Dispositivos((PK)ID, Descrição) valores(1, RAM)
TB_Computador_Detalhe((PK)ID, ComputadorID, DispositivoID, valor)valores(1,1,1,1,1000)
Cada computador pode ter mais de 1 pente de memória, preciso trazer em uma consulta , a distribuição de quantidade de memória no meu park
Conteúdo de
ID | ComputadorID | DispositivoID | Valor
------------------------------------------
1 | 1 | 1 | 1
1 | 1 | 1 | 1
2 | 3 | 1 | 2
3 | 5 | 1 | 4
Resultado:
RAM | Quantidade
------------------
2 | 2
4 | 1
Ou seja, quantas máquinas possuem 2 gigas de RAM, quantas possuem 4 gigas, etc...
Pensei em usar SUM e COUNT, mas não estou conseguindo visualizar a forma de criar a consulta.
Alguma sugestão?
Respostas
-
Bom dia,
Experimente mais ou menos dessa forma:
with CTE_Sum as ( select c.ID, sum(cd.Valor) as Valor from TB_Computador as c inner join TB_Computador_Detalhe as cd on cd.ComputadorID = c.ID inner join TB_Dispositivos as d on d.ID = cd.DispositivoID where d.Descricao = 'RAM' group by c.ID ) select Valor as RAM, count(1) as Quantidade from CTE_Sum group by Valor
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Márcio E de Souza terça-feira, 24 de fevereiro de 2015 14:02
Todas as Respostas
-
Bom dia,
Experimente mais ou menos dessa forma:
with CTE_Sum as ( select c.ID, sum(cd.Valor) as Valor from TB_Computador as c inner join TB_Computador_Detalhe as cd on cd.ComputadorID = c.ID inner join TB_Dispositivos as d on d.ID = cd.DispositivoID where d.Descricao = 'RAM' group by c.ID ) select Valor as RAM, count(1) as Quantidade from CTE_Sum group by Valor
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Márcio E de Souza terça-feira, 24 de fevereiro de 2015 14:02
-