Boa noite pessoal,
Tenho uma consulta em SQL e há uma semana venho tentando transforma-la em HQL, sem sucesso.
Tenho um banco de dados que guarda o horário que os funcionários bateram o ponto de entrada, junto com seu ID.
Exemplo:
[code]TABELA PONTO
data idFuncionario
2014-04-10 09:05:15 1
2014-04-11 09:09:37 1
2014-04-12 09:06:25 1
2014-04-13 09:12:46 1
2014-04-10 09:05:18 2
2014-04-11 08:37:47 2
2014-04-12 09:05:56 2
2014-04-13 08:45:43 2
2014-04-10 10:33:33 3
2014-04-11 09:15:34 3
2014-04-12 08:56:27 3
2014-04-13 09:32:19 3
[/code]
Eu preciso selecionar a data da última vez que cada funcionário bateu o ponto. A query em SQL é a seguinte:
[color=blue]SELECT *[/color]
[color=blue]FROM [/color][color=red]ponto[/color]
[color=blue]INNER JOIN[/color]
[color=blue] (SELECT [/color][color=red]ponto[/color].[color=olive]idFuncionario id [/color], [color=darkblue]MAX/color AS[/color][color=olive] maxPonto [/color][color=blue]FROM[/color] [color=red]ponto[/color][color=blue] GROUP BY [/color][color=olive]idFuncionario)[/color][color=blue] AS [/color][color=olive]maxSelect [/color]
[color=blue]ON [/color][color=red]ponto[/color].[color=olive]idFuncionario[/color] = [color=olive]maxSelect.id [/color] [color=blue] AND[/color] [color=red]ponto[/color].[color=olive]data
[/color] = [color=olive]maxSelect.maxPonto[/color]
[color=blue]ORDER BY [/color][color=olive]maxPonto[/color]
Ela me retorna corretamente os valores:
[code]TABELA PONTO
data idFuncionario id maxPonto
2014-04-13 09:12:46 1 1 2014-04-13 09:12:46
2014-04-13 08:45:43 2 2 2014-04-13 08:45:43
2014-04-13 09:32:19 3 3 2014-04-13 09:32:19
[/code]
Mas não consegui transformar isso em HQL, alguém pode me ajudar?
Obrigado!