Usuário com melhor resposta
Instrução select com porcentagem

Pergunta
-
Respostas
-
Olá Junior,
Minha maneira de montar foi essa...
Só copiar o código e executar no seu SQL
Se lhe foi útil, avalie!
CREATE TABLE #TB_ALUNO(ID_ALUNO INT IDENTITY, NOME_ALUNO VARCHAR(20)) INSERT INTO #TB_ALUNO SELECT 'ANDERSON' INSERT INTO #TB_ALUNO SELECT 'PEDRO' INSERT INTO #TB_ALUNO SELECT 'ROBERVAL' INSERT INTO #TB_ALUNO SELECT 'MARIA' CREATE TABLE #NOTAS(ID_NOTA INT IDENTITY, ID_ALUNO INT, NOTA FLOAT) INSERT INTO #NOTAS SELECT 1, 2.0 INSERT INTO #NOTAS SELECT 2, 3.0 INSERT INTO #NOTAS SELECT 3, 3.0 INSERT INTO #NOTAS SELECT 4, 7.0 SELECT A.ID_ALUNO, A.NOME_ALUNO, B.ID_NOTA, B.NOTA INTO #TEMP_TOTAL FROM #TB_ALUNO A INNER JOIN #NOTAS B ON (A.ID_ALUNO = B.ID_ALUNO) SELECT C.NOME_ALUNO, C.NOTA FROM #TEMP_TOTAL C UNION ALL SELECT '(%) ABAIXO DE 5', (SELECT ((SUM(CASE WHEN X.NOTA < 5 THEN 1 ELSE 0 END))/ CAST(COUNT(*) AS FLOAT) * 100) FROM #TEMP_TOTAL X) DROP TABLE #NOTAS DROP TABLE #TB_ALUNO DROP TABLE #TEMP_TOTAL
[]'s,
Anderson
Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.
- Marcado como Resposta JuniorOSL quarta-feira, 3 de dezembro de 2014 17:35
Todas as Respostas
-
Bom dia Junior.
Creio que uma Instrução básica com porcentagem para uma consulta SQL no seu caso, seria:
Select ID_ALUNOS, Alunos, (Count(ID_ALUNOS)* 100 / (Select Count(*) From TB_ALUNOS)) as porCem From TB_ALUNOS Group By Alunos
GAMAL - DATA BASE ADMINISTRATOR
-
-
Olá Junior,
Minha maneira de montar foi essa...
Só copiar o código e executar no seu SQL
Se lhe foi útil, avalie!
CREATE TABLE #TB_ALUNO(ID_ALUNO INT IDENTITY, NOME_ALUNO VARCHAR(20)) INSERT INTO #TB_ALUNO SELECT 'ANDERSON' INSERT INTO #TB_ALUNO SELECT 'PEDRO' INSERT INTO #TB_ALUNO SELECT 'ROBERVAL' INSERT INTO #TB_ALUNO SELECT 'MARIA' CREATE TABLE #NOTAS(ID_NOTA INT IDENTITY, ID_ALUNO INT, NOTA FLOAT) INSERT INTO #NOTAS SELECT 1, 2.0 INSERT INTO #NOTAS SELECT 2, 3.0 INSERT INTO #NOTAS SELECT 3, 3.0 INSERT INTO #NOTAS SELECT 4, 7.0 SELECT A.ID_ALUNO, A.NOME_ALUNO, B.ID_NOTA, B.NOTA INTO #TEMP_TOTAL FROM #TB_ALUNO A INNER JOIN #NOTAS B ON (A.ID_ALUNO = B.ID_ALUNO) SELECT C.NOME_ALUNO, C.NOTA FROM #TEMP_TOTAL C UNION ALL SELECT '(%) ABAIXO DE 5', (SELECT ((SUM(CASE WHEN X.NOTA < 5 THEN 1 ELSE 0 END))/ CAST(COUNT(*) AS FLOAT) * 100) FROM #TEMP_TOTAL X) DROP TABLE #NOTAS DROP TABLE #TB_ALUNO DROP TABLE #TEMP_TOTAL
[]'s,
Anderson
Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.
- Marcado como Resposta JuniorOSL quarta-feira, 3 de dezembro de 2014 17:35