Ir para conteúdo
Fórum Script Brasil
  • 0

AJUDA EM SELEÇÃO


carlosinss

Pergunta

Pessoal, estou com dificuldade de realizar o seguinte select:

Selecionar a primeira e a ultima data para cada codigo existente de um funcionario na tabela ponto que é mensal obedecendo a ordem cronologica dos dias. Abaixo um exemplo de registro do funcionario 0911251 na tabela ponto:

2009-04-05 0911251 00020 NULL

2009-04-06 0911251 00020 NULL

2009-04-07 0911251 00020 NULL

2009-04-08 0911251 00020 NULL

2009-04-09 0911251 00000 NULL

2009-04-10 0911251 00020 NULL

2009-04-11 0911251 00172 NULL

2009-04-12 0911251 00000 NULL

2009-04-13 0911251 00000 NULL

2009-04-14 0911251 00000 NULL

2009-04-15 0911251 00000 NULL

2009-04-25 0911251 00000 NULL

2009-04-16 0911251 00000 NULL

2009-04-17 0911251 00000 NULL

2009-04-23 0911251 00020 NULL

Para esse funcionario (0911251) deverei ter de resultado o seguinte:

cod 00020 dtinicial 05-04-2009 dtfinal 08-04-2009

cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009

cod 00000 dtinicial 12-04-2009 dtfinal 17-04-2009

cod 00020 dtinicial 23-04-2009 dtfinal 23-04-2009

cod 00000 dtinicial 25-04-2009 dtfinal 25-04-2009

Alguém poderia me ajudar nessa demanda?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Obrigado Mario, dessa forma não dá certo visto que não posso definir o codigo nem as datas que os codigos vão aparecer.

Estou tentando o codigo a seguir mas ainda não retorna o que preciso conforme explicitado anteriormente, veja a seguir:

$rpont = "SELECT entra, min(dia) as dtini, max(dia) as dtfin, date_format(dia, '%d/%m/%Y') as dia, sai, jornd, jornp, jorndif, oco, just FROM ponto WHERE num = '$mat' group by oco order by dia";

Nesse caso ele agrupa por codigo e me retorna como dia inicial a data correta mas a data final ele está pegando a última sem observar a ordem cronológica.

traz assim:

cod 00020 dtinicial 05-04-2009 dtfinal 23-04-2009

cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009

cod 00000 dtinicial 12-04-2009 dtfinal 25-04-2009

quando deveria ser assim:

cod 00020 dtinicial 05-04-2009 dtfinal 08-04-2009

cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009

cod 00000 dtinicial 12-04-2009 dtfinal 17-04-2009

cod 00020 dtinicial 23-04-2009 dtfinal 23-04-2009

cod 00000 dtinicial 25-04-2009 dtfinal 25-04-2009

Veja que o codigo 00020 se repete no mes primeiro de 05 a 08/04 e depois no dia 23/04

alguma sugestão?

Select * from tabela where cod=00020 and dtinicial='2009-04-05' and dtfinal='2009-04-08'.

Não seria isso?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...