none
Um simples Select com uma formula simples, mas ... nao exibe RRS feed

  • Pergunta

  • Pessoal,

    No Select abaixo, a última coluna 'iil' tenho retorno dela:
    SELECT hsm.ano, hsm.mes, SUM(nda.diasConcedidos) AS 'diasConcedidos', SUM(hsm.numAtivos) AS 'numAtivos', SUM(nda.diasConcedidos) / SUM(hsm.numAtivos) AS 'iil'
    FROM gerencia.dbo.historicoServidoresMes AS hsm INNER JOIN gerencia.dbo.numDiasAfastamentosMes AS nda ON (hsm.ano=nda.ano AND hsm.mes=nda.mes)
    GROUP BY hsm.ano, hsm.mes
    ORDER BY hsm.ano, hsm.mes ASC
    
    Contudo, quando adiciono essa formula, só retorna 0.
    SELECT hsm.ano, hsm.mes, SUM(nda.diasConcedidos) AS 'diasConcedidos', SUM(hsm.numAtivos) AS 'numAtivos', SUM(nda.diasConcedidos) / (SUM(hsm.numAtivos) * 30) AS 'iil'
    FROM gerencia.dbo.historicoServidoresMes AS hsm INNER JOIN gerencia.dbo.numDiasAfastamentosMes AS nda ON (hsm.ano=nda.ano AND hsm.mes=nda.mes)
    GROUP BY hsm.ano, hsm.mes
    ORDER BY hsm.ano, hsm.mes ASC
    
    Tais resultados, deveriam ser 0,22; 0,10; 0,21, etc ...

    Como fazer isso


    Valew !
    • Editado aNetao sexta-feira, 12 de junho de 2009 06:21
    sexta-feira, 12 de junho de 2009 06:13

Respostas

  • Eh,

    quando se faz as coisas de madrugada, o raciocinio é comprometido.

    mas, é só converter os valores dividendo e divisor, de INTEGER para DECIMAL.


    Valew !
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 13:10
    sexta-feira, 12 de junho de 2009 06:39
  • Segue solução proposta:

    SELECT 
    	HSM.ANO, 
    	HSM.MES, 
    	SUM(CONVERT(DECIMAL(10,4),NDA.DIASCONCEDIDOS)) AS 'DIASCONCEDIDOS', 
    	SUM(CONVERT(DECIMAL(10,4),HSM.NUMATIVOS)) AS 'NUMATIVOS', 
    	SUM(CONVERT(DECIMAL(10,4),NDA.DIASCONCEDIDOS)) / (SUM(CONVERT(DECIMAL(10,4),HSM.NUMATIVOS)) * 30) AS 'IIL'
    FROM 
    	GERENCIA.DBO.HISTORICOSERVIDORESMES AS HSM 
    		INNER JOIN GERENCIA.DBO.NUMDIASAFASTAMENTOSMES AS NDA 
    		ON HSM.ANO=NDA.ANO 
    		AND HSM.MES=NDA.MES
    GROUP BY 
    	HSM.ANO, HSM.MES
    ORDER BY 
    	HSM.ANO, HSM.MES ASC
    Espero ter ajudado.

    Abraços. 

    Diogo Á. Di Pietro
    • Sugerido como Resposta Diogo A. Di Pietro segunda-feira, 15 de junho de 2009 16:54
    • Editado Diogo A. Di Pietro segunda-feira, 15 de junho de 2009 16:54 Um dos Convert estava incorreto...
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 13:10
    segunda-feira, 15 de junho de 2009 16:53

Todas as Respostas

  • Eh,

    quando se faz as coisas de madrugada, o raciocinio é comprometido.

    mas, é só converter os valores dividendo e divisor, de INTEGER para DECIMAL.


    Valew !
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 13:10
    sexta-feira, 12 de junho de 2009 06:39
  • Segue solução proposta:

    SELECT 
    	HSM.ANO, 
    	HSM.MES, 
    	SUM(CONVERT(DECIMAL(10,4),NDA.DIASCONCEDIDOS)) AS 'DIASCONCEDIDOS', 
    	SUM(CONVERT(DECIMAL(10,4),HSM.NUMATIVOS)) AS 'NUMATIVOS', 
    	SUM(CONVERT(DECIMAL(10,4),NDA.DIASCONCEDIDOS)) / (SUM(CONVERT(DECIMAL(10,4),HSM.NUMATIVOS)) * 30) AS 'IIL'
    FROM 
    	GERENCIA.DBO.HISTORICOSERVIDORESMES AS HSM 
    		INNER JOIN GERENCIA.DBO.NUMDIASAFASTAMENTOSMES AS NDA 
    		ON HSM.ANO=NDA.ANO 
    		AND HSM.MES=NDA.MES
    GROUP BY 
    	HSM.ANO, HSM.MES
    ORDER BY 
    	HSM.ANO, HSM.MES ASC
    Espero ter ajudado.

    Abraços. 

    Diogo Á. Di Pietro
    • Sugerido como Resposta Diogo A. Di Pietro segunda-feira, 15 de junho de 2009 16:54
    • Editado Diogo A. Di Pietro segunda-feira, 15 de junho de 2009 16:54 Um dos Convert estava incorreto...
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 13:10
    segunda-feira, 15 de junho de 2009 16:53