Selecionar itens da tabela e fazer calculos baseados em datas

MySQL

12/05/2016

Olá pessoal,

Eu tenho uma tabela que controla o financeiro do meu cliente. Nessa tabela tenho todas as parcelas de cada cliente e etc.

Minha necessidade é criar uma consulta que me traga todos estes dados agrupados por nome do cliente (até ai td bem, um simples select com group by resolve) mas que tb traga os valores das ultimas parcelas de cada cliente. Por exemplo;

Eu tenho na tabela :


1 Alex 100,00 29/03/2016
2 Alex 150,00 04/04/2016
3 Joao 260,00 10/01/2016
4 Antônio 679,80 15/08/2015

A consulta deve trazer :

O item 2 (pq foi o ultimo lançamento encontrado com o nome Alex e com o status pago), o item 1 nao traz pq ja existe outro lançamento com o mesmo nome na frente.

Traz o item 3 e 4, pq independente da data ele precisa listar todos os dados da tabela e com o valor da última parcela.

Agradeço a quem puder ajudar, nao encontrei nada no fórum.
Fernando Alves

Fernando Alves

Curtidas 0

Melhor post

Marcos P

Marcos P

12/05/2016

Assumindo que esse sequencial numérico é o ID do título, você deve selecionar o maior ID para cada "Nome" ( o que não é nada bom... pois você deveria ter uma chave de ID cliente para isso ). Fica :

select *
from titulo 
where ID in (select max(ID) from titulo group by nome)
GOSTEI 1

Mais Respostas

Fernando Alves

Fernando Alves

12/05/2016

Galera foi mau pelo título, nao eh baseado por data, eh independente da data ok.
GOSTEI 0
Fernando Alves

Fernando Alves

12/05/2016

Alguém por favor de uma luz!
GOSTEI 0
Fernando Alves

Fernando Alves

12/05/2016

Resolvido!

Obrigado mais uma vez Marcos, ficou assim pra quem quiser pegar



Select tbClientes.Nome_razao, max(tbFinanceiro.DataCopetencia) as Ultimo_lancamento , tbFinanceiro.ValorPago as Ultima_Parcela, tbFinanceiro.`Status`
from tbFinanceiro
INNER JOIN tbClientes
ON tbFinanceiro.idClienteFornecedor = tbClientes.idCliente
group by tbFinanceiro.idClienteFornecedor
order by tbClientes.Nome_razao


A primeira linha me traz os campos que quero mostrar juntamente com o
max(tbFinanceiro.DataCopetencia)
.que me traz os últimos lançamentos de cada conta no financeiro.
Depois faço o INNER JOIN para mostrar o nome do cliente ao invés do seu ID.
E por ultimo
group by tbFinanceiro.idClienteFornecedor
que agrupa por ID, tornando uma lista final de clientes com os últimos pagamentos.


Obrigado mais uma vez,

Forte abraço!
GOSTEI 0
POSTAR