Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato Siroma

[Resolvido] Problema com Select.

Recommended Posts

Dado a seguinte query.

 

SELECT FUN.ID_FUNCIONARIO,

FUN.NOME, FUN.IDE_EMPRESA,

FUN.IDE_FILIAL,

FUN.IDE_CARGO,

FUN.IDE_ORGAO,

FUN.UF, FERIAS.INICIO_PERIODO_AQ,

FERIAS.DT_INICIO_DESC,

FERIAS.DT_FIM_DESC,

FUN.IDE_FILIAL,

EMP.NOME_FILIAL,

DIREI.FALTAS,

FERIAS.DT_RETORNO,

FERIAS.DIAS_DESC,

FERIAS.DIAS_ABONO,

ORG.DESCRICAO AS ORGAO,

CAR.DESCRICAO AS CARGO,

VERB.VALOR,

FERIAS.INICIO_PERIODO_AQ AS INI_PERIODO,

FERIAS.FIM_PERIODO_AQ AS FIM_PERIODO

FROM FP_FUNCIONARIO AS FUN

LEFT JOIN FP_CARGO AS CAR ON FUN.IDE_CARGO = CAR.ID_CARGO

LEFT JOIN FP_ORGAO AS ORG ON FUN.IDE_ORGAO = ORG.ID_ORGAO

LEFT JOIN fp_hist_ferias AS FERIAS ON FERIAS.IDE_FUNCIONARIO = FUN.ID_FUNCIONARIO

LEFT JOIN FP_EMPRESA AS EMP ON FUN.IDE_FILIAL = EMP.ID_FILIAL

LEFT JOIN FP_DIREITO_FERIAS AS DIREI ON FUN.ID_FUNCIONARIO = DIREI.IDE_FUNCIONARIO

LEFT JOIN fp_acum_verbas AS VERB ON FUN.ID_FUNCIONARIO = VERB.IDE_FUNCIONARIO

WHERE FUN.ID_FUNCIONARIO='010180' and VERB.descr_verba='SALARIO' and VERB.ANOMES_COMP='200810'

 

 

 

Eu gostaria de pegar o MAX(FERIAS.INICIO_PERIODO_AQ ) e MIN(FERIAS.FIM_PERIODO_AQ )

 

Só que não consigo. alguém poderia me explicar como eu seleciono o MAX e o MIN dos campos..

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pegar valores com a função MIN e MAX você terá que usar o GROUP BY.

 

SELECT FUN.ID_FUNCIONARIO, FUN.NOME, FUN.IDE_EMPRESA, FUN.IDE_FILIAL, FUN.IDE_CARGO, FUN.IDE_ORGAO, FUN.UF, FERIAS.INICIO_PERIODO_AQ,
			FERIAS.DT_INICIO_DESC, FERIAS.DT_FIM_DESC, FUN.IDE_FILIAL, EMP.NOME_FILIAL, DIREI.FALTAS, FERIAS.DT_RETORNO, FERIAS.DIAS_DESC,
			FERIAS.DIAS_ABONO, ORG.DESCRICAO AS ORGAO, CAR.DESCRICAO AS CARGO, VERB.VALOR, FERIAS.INICIO_PERIODO_AQ AS INI_PERIODO,
			FERIAS.FIM_PERIODO_AQ AS FIM_PERIODO, MAX(FERIAS.INICIO_PERIODO_AQ ), MIN(FERIAS.FIM_PERIODO_AQ )
FROM FP_FUNCIONARIO AS FUN
LEFT JOIN FP_CARGO AS CAR ON FUN.IDE_CARGO = CAR.ID_CARGO
LEFT JOIN FP_ORGAO AS ORG ON FUN.IDE_ORGAO = ORG.ID_ORGAO
LEFT JOIN fp_hist_ferias AS FERIAS ON FERIAS.IDE_FUNCIONARIO = FUN.ID_FUNCIONARIO
LEFT JOIN FP_EMPRESA AS EMP ON FUN.IDE_FILIAL = EMP.ID_FILIAL
LEFT JOIN FP_DIREITO_FERIAS AS DIREI ON FUN.ID_FUNCIONARIO = DIREI.IDE_FUNCIONARIO
LEFT JOIN fp_acum_verbas AS VERB ON FUN.ID_FUNCIONARIO = VERB.IDE_FUNCIONARIO
WHERE FUN.ID_FUNCIONARIO='010180' and VERB.descr_verba='SALARIO' and VERB.ANOMES_COMP='200810'
GROUP BY FUN.ID_FUNCIONARIO, FUN.NOME, FUN.IDE_EMPRESA, FUN.IDE_FILIAL, FUN.IDE_CARGO, FUN.IDE_ORGAO, FUN.UF, FERIAS.INICIO_PERIODO_AQ,
				FERIAS.DT_INICIO_DESC, FERIAS.DT_FIM_DESC, FUN.IDE_FILIAL, EMP.NOME_FILIAL, DIREI.FALTAS, FERIAS.DT_RETORNO, FERIAS.DIAS_DESC,
				FERIAS.DIAS_ABONO, ORG.DESCRICAO AS ORGAO, CAR.DESCRICAO AS CARGO, VERB.VALOR, FERIAS.INICIO_PERIODO_AQ AS INI_PERIODO,
				FERIAS.FIM_PERIODO_AQ AS FIM_PERIODO

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrando que no group by é incluido todos os campos que não estão sendo usados por funções agragadas no caso a MAX e a MIN.

 

até a proxima...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.