none
Contar Quantidade de Registros RRS feed

  • Pergunta

  • Prezados bom dia

    Preciso fazer uma query que "conte" a quantidade de registros por código de funcionário - seria da seguinte forma:

    COD_FUN   DATA        HORARIO

    00001        20150505  0651

    00001        20150505  1100

    00001        20150505  1200

    00001        20150505  1700

    00002        20150505  0700

    .....            ......          ......

    Para cada código de funcionário deve haver 4 horários, entrada, saída p/ almoço, volta almoço e saída, gostaria de verificar quais funcionários tiveram menos "horários" pois isso afeta o fechamento do ponto eletrônico aqui na empresa, pois só vou descobrir que está faltando marcações aqui na empresa quando vou realizar o fechamento, ai o sistema não fecha o ponto pois informa que existem marcações impares - a ideia é através dessa query, sabermos antes de fechar o ponto quantos funcionários estão faltando batidas ( < 4  dai eu mostro apenas a matricula e a quantidade de "batidas") pois assim o pessoal acessa o cadastro e corrige as marcações faltantes.

    Desde já agradeço pela atenção.

    quinta-feira, 28 de maio de 2015 13:16

Respostas

  • Deleted
    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 28 de maio de 2015 13:39
    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:56
    quinta-feira, 28 de maio de 2015 13:30
  • Caio, experimente algo como

    -- código 1
    SELECT COD_FUN, DATA, Qtd= Count(*)
      from tabela
      group by COD_FUN, DATA
      having Count(*) <> 4;


        José Diz     Belo Horizonte, MG - Brasil
    (Se encontrou a solução nesta resposta, ou se o conteúdo foi útil, lembre-se de marcá-la)



    Caio, acredito que a dica do Jose irá te ajudar. Eu apenas adicionaria uma cláusula where filtrando pelo período:

    SELECT COD_FUN, DATA, Qtd= Count(*)
      from tabela
      where DATA between @dataInicial and @dataFinal
      group by COD_FUN, DATA
      having Count(*) <> 4;
    Bom trabalho!

    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:57
    quinta-feira, 28 de maio de 2015 13:37
  • Bom Dia Jose

    Caiu como uma luva, muito obrigado!!!!!

    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:57
    quinta-feira, 28 de maio de 2015 13:57

Todas as Respostas

  • Deleted
    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 28 de maio de 2015 13:39
    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:56
    quinta-feira, 28 de maio de 2015 13:30
  • Caio, experimente algo como

    -- código 1
    SELECT COD_FUN, DATA, Qtd= Count(*)
      from tabela
      group by COD_FUN, DATA
      having Count(*) <> 4;


        José Diz     Belo Horizonte, MG - Brasil
    (Se encontrou a solução nesta resposta, ou se o conteúdo foi útil, lembre-se de marcá-la)



    Caio, acredito que a dica do Jose irá te ajudar. Eu apenas adicionaria uma cláusula where filtrando pelo período:

    SELECT COD_FUN, DATA, Qtd= Count(*)
      from tabela
      where DATA between @dataInicial and @dataFinal
      group by COD_FUN, DATA
      having Count(*) <> 4;
    Bom trabalho!

    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:57
    quinta-feira, 28 de maio de 2015 13:37
  • Bom Dia Jose

    Caiu como uma luva, muito obrigado!!!!!

    • Marcado como Resposta CaioTec quinta-feira, 28 de maio de 2015 13:57
    quinta-feira, 28 de maio de 2015 13:57
  • Bom Dia Rodrigo

    Realmente ia precisar do where, que tinha visto alguns exemplos na web porém não se encaixava com o que eu precisava - dai pensei ia ser um código mirabolante.

    Agradeço pela atenção, bom trabalho para você também.

    quinta-feira, 28 de maio de 2015 14:01