Ajuda na query

Delphi

05/11/2007

Eis a minha query:
SELECT ESCALA.ESCODIGO,MAX(ESCAHIST.EHDTINICIO) AS DATAATUAL FROM ESCAHIST, ESCALA,FUNCIONA WHERE ESCALA.ESCODIGO = ESCAHIST.EHESCALA AND ESCAHIST.EHEMPSIS = FUNCIONA.FUCODEMP AND ESCAHIST.EHMATRICULA = FUNCIONA.FUMATFUNC AND ESCAHIST.EHEMPSIS = 1 AND ESCAHIST.EHMATRICULA = 724 GROUP BY ESCALA.ESCODIGO


Essa query está quase funcionando exceto o seguinte: Deveria trazer somente um resultado, mas está trazendo dois, com datas diferentes, mas o que eu quero é uma única data, ou seja, a mais atual. Sei que eu tenho que meter uma subquery, mas não tô enxergando nada.

MsSql Server 2000 e D7.


Paulo

Paulo

Curtidas 0

Respostas

Paulo

Paulo

05/11/2007

O resultado é o seguinte:

ESCODIGO DATAATUAL 023 2007-02-16 00:00:00.000 033 2006-05-01 00:00:00.000


Deveria ser somente o 033, pois ele tem a data mais recente, porem esse funcionário já pertenceu às duas escalas supra. A query me trouxe as duas datas mais atual das escalas que ele pertenceu, mas no meu caso mne interessa somente a mais atual entre todas, não me interessa saber se ele pertenceu a essa ou aquela escala, não sei se fiquei claro.


GOSTEI 0
Paulo

Paulo

05/11/2007

Achei a resposta, eis aí:

SELECT ES.ESCODIGO FROM ESCAHIST EH, ESCALA ES, FUNCIONA FU WHERE EH.EHDTINICIO IN (SELECT MAX(EHDTINICIO) FROM ESCAHIST WHERE ESEMPSIS = ES.ESEMPSIS AND EHMATRICULA = EH.EHMATRICULA AND EHDTINICIO >= ´2006-01-01´ AND EHDTINICIO <= ´2007-12-31´) AND EH.EHESCALA = ES.ESCODIGO AND EH.EHEMPSIS = FU.FUCODEMP AND EH.EHMATRICULA = FU.FUMATFUNC AND EH.EHEMPSIS = 1 AND EH.EHMATRICULA = 724



GOSTEI 0
POSTAR