Ir para conteúdo

POWERED BY:

Arquivado

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

l_ucasprado

consulta

Recommended Posts

Olá galera,

é o seguinte, estou maluco ja, tentei de mil maneiras mas não esta dando certo ..

 

Preciso realizar uma consulta onde tenho uma série de cadastros interligados, pois preciso puxar um histórico. Então tenho no banco um campo chamado id_divida_raiz, é onde coloco os numeros para interligar os cadastros depois.

Eis a questão ... preciso realizar uma consulta onde retorne sempre o ULTIMO, ou seja, o MAIS RECENTE cadastro entre os id_divida_raiz.

Ja tentei group by, ele funciona, porém me retorna o primeiro cadastro de cada id_raiz, preciso do ultimo cadastro.

Ja tentei MAX, MIN, DESC, ASC, GROUP BY, DISTINCT, mas nada me retorna o ultimo valor inserido em cada categoria de id_raiz.

 

Alguem tem uma solução?, preciso disso urgente.

eis aqui a query que estou lidando ... vejam: $sql = "SELECT * FROM cobrancas WHERE provisionado_condicao='SIM' AND status='ATIVO' GROUP BY id_divida_raiz ORDER BY hora_cadastro AND data_cadastro ASC";

 

porém ele não me lista o ultimo cadastro, e sim o primeiro encontrado pelo agrupamento.

 

Galera, lembrando que estou usando PHP e Mysql

Obrigado ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publica a descrição de suas tabelas e o select que deu errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só ... é mais ou menos assim, deixa eu ver se você entende melhor ..

 

 

tenho assim:

 

ID ID_RAIZ

1 1

2 1

3 1

4 4

5 4

 

.. imagine que as ids 1, 2 e 3 são de uma mesma divida, então possuem a id raiz iguais pra mim poder puxar histórico delas depois ...

e as ids 4 e 5 são de uma mesma divida também ...

 

só que preciso listar as dividas com id raiz 1 e 4, exibindo pra mim somente o ultimo registro inserido, ou seja ... o mais atual ...

 

pra isso tenho no banco data_cadastro e hora_cadastro ... mas com group by ele nao aceita o order by.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seria algo assim :

 

select *
from cobrancas c1
where c1.id = (select max(c2.id)
              from cobrancas c2
              where c2.id_raiz = c1.id_raiz)

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.