| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Qui Ago 17, 2017 12:57 am Assunto: [RESOLVIDO]Buscar a menor data, função MIN não está funciona |
|
|
Olá Pessoal,
Eu tenho este seguinte código
| Código: |
select *
from DET_FOLHA_PAGAMENTO A
where A.FK_IDFOLHA_PAGAMENTO = '4' and
A.DATA_VENCIMENTO > '16.08.2017' and
A.DATA_VENCIMENTO = (select min(A.DATA_VENCIMENTO)
from DET_FOLHA_PAGAMENTO A)
|
Como podem ver eu pego ALL(tudo) da tabela DET_FOLHA_PAGAMENTO onde o código da FK_IDFOLHA_PAGAMENTO = '4'
onde a DATA_VENCIMENTO > '16.08.2017'
e depois tento pegar a menor data de todas as que foram encontradas e ai é que está o problema, não está pegando a menor data, mas se eu trocar o min para max ele pega a maior data. Poderiam me dizer o porque disso?
Só para constar este código onde não busco pelo minimo o resultado das datas é:
| Código: |
select *
from DET_FOLHA_PAGAMENTO A
where A.FK_IDFOLHA_PAGAMENTO = '4' and
A.DATA_VENCIMENTO > '16.08.2017'
|
Resultado:
01.09.2017 - Estou tentando pegar esta com o min porém não encontra nada
01.10.2017 - Se eu troco para max ele pega está data que está correto, porém o que eu quero é a menor data que é a de cima
OBS: Assim a função min funciona porém não me trás o resultado desejado.
| Código: |
select min(A.DATA_VENCIMENTO)
from DET_FOLHA_PAGAMENTO A
|
Desde já agradecido!
Editado pela última vez por x7r3m3x em Qui Ago 17, 2017 3:42 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qui Ago 17, 2017 8:39 am Assunto: |
|
|
Faz um teste com esse código:
| Código: | select *
from DET_FOLHA_PAGAMENTO A
where A.FK_IDFOLHA_PAGAMENTO = '4' and
A.DATA_VENCIMENTO = (select min(B.DATA_VENCIMENTO)
from DET_FOLHA_PAGAMENTO B
where B.DATA_VENCIMENTO >'16.08.2017') |
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Ago 17, 2017 10:23 am Assunto: |
|
|
Bom dia,
x7r3m3x, experimente fazer uns testes dessa forma:
| Código: | select *
from DET_FOLHA_PAGAMENTO
where FK_IDFOLHA_PAGAMENTO = '4' and
DATA_VENCIMENTO = (select min(DATA_VENCIMENTO)
from DET_FOLHA_PAGAMENTO
where FK_IDFOLHA_PAGAMENTO = '4' and
DATA_VENCIMENTO > '16.08.2017') |
Espero que ajude
Editado pela última vez por imex em Qua Out 25, 2023 12:14 pm, num total de 2 vezes |
|
| Voltar ao Topo |
|
 |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Qui Ago 17, 2017 3:41 pm Assunto: |
|
|
| imex escreveu: | Bom dia,
x7r3m3x, experimente fazer uns testes dessa forma:
| Código: | select *
from DET_FOLHA_PAGAMENTO
where FK_IDFOLHA_PAGAMENTO = '4' and
DATA_VENCIMENTO = (select min(DATA_VENCIMENTO)
from DET_FOLHA_PAGAMENTO
where FK_IDFOLHA_PAGAMENTO = '4' and
DATA_VENCIMENTO > '16.08.2017') |
Espero que ajude
|
Bom dia! Este código deu certo, parece que é necessário passar o código no where | Citação: | | FK_IDFOLHA_PAGAMENTO = '4' | novamente para funcionar.
Mas achei estranho porque na função max não é necessário fazer isso só na função min. Será um bug?
Mas deu certo! Obrigado a todos! |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Ago 17, 2017 9:01 pm Assunto: |
|
|
| Essa condição no Where também é necessária com a função Max, não é bug não. Acho que provavelmente funcionou sem ela porque o registro da tabela com a maior data tinha o campo FK_IDFOLHA_PAGAMENTO igual a '4', se fosse diferente também daria problema. |
|
| Voltar ao Topo |
|
 |
|