Dúvida sobre uma consulta no MYSQL

1. Dúvida sobre uma consulta no MYSQL

Jean de Sousa
JeanzinRJ

(usa Debian)

Enviado em 27/10/2016 - 19:51h

Salve, Galera

e o seguinte...

eu tenho duas tabelas: assinantes e pagamentos. Ao realizar uma pesquisa:

SELECT assinantes.nome, pagamentos.data_pg from assinantes JOIN pagamentos on assinantes.id = pagamentos.id_assinante

resultado:

nome: data_pg
jean 2016-10-25
jean 2016-09-02
joao 2016-09-10
maria 2016-10-05

O problema é que eu quero consultar quem ainda não pagou no mês (10). se eu colocar o where pagamentos.data_pg < '2016-10'

vai mostrar tanto o joao, quanto o jean. Porém o jean já pagou no mês 10. como fazer pra excluir, ou seja caso seja detectado que o assinantes em questão já pagou. Exiba somente quem não pagou?

O resultado esperado é

joão 2016-09-10


ou seja ultimo pagamento de João.


  


2. Re: Dúvida sobre uma consulta no MYSQL

Gustavo Valério
GustavoValerio

(usa Void Linux)

Enviado em 27/10/2016 - 21:58h

JeanzinRJ escreveu: ...


A querie seguinte deveria funcionar:

[...] WHERE pagamentos.data_pg LIKE '2016-10%'

ou

[...] WHERE pagamentos.data_pg LIKE '2016-10-__'

------------------------------------------------------------------------------------------------------------------------
"Esta é a filosofia Unix:
Escreva programas que façam apenas uma coisa mas que façam bem feito.
Escreva programas que trabalhem juntos.
Escreva programas que manipulem streams de texto, pois esta é uma interface universal."
Ou, de maneira simples: "faça apenas uma coisa e faça bem".
------------------------------------------------------------------------------------------------------------------------
Visite: https://blog.gustavovalerio.com
Visite: http://goo.gl/NJlxXy


3. Re: Dúvida sobre uma consulta no MYSQL

Jean de Sousa
JeanzinRJ

(usa Debian)

Enviado em 31/10/2016 - 09:01h

não funcionam pq, ai ele iria exibir somente os que são como '2016-10' o que eu quero é que ele pegue os que não tem 2016-10 ...


GustavoValerio escreveu:

JeanzinRJ escreveu: ...


A querie seguinte deveria funcionar:

[...] WHERE pagamentos.data_pg LIKE '2016-10%'

ou

[...] WHERE pagamentos.data_pg LIKE '2016-10-__'

------------------------------------------------------------------------------------------------------------------------
"Esta é a filosofia Unix:
Escreva programas que façam apenas uma coisa mas que façam bem feito.
Escreva programas que trabalhem juntos.
Escreva programas que manipulem streams de texto, pois esta é uma interface universal."
Ou, de maneira simples: "faça apenas uma coisa e faça bem".
------------------------------------------------------------------------------------------------------------------------
Visite: https://blog.gustavovalerio.com
Visite: http://goo.gl/NJlxXy





4. Re: Dúvida sobre uma consulta no MYSQL

thinomar
thinomar

(usa Linux Mint)

Enviado em 31/10/2016 - 12:09h

Vê se funciona:
SELECT assinantes.nome AS Devedor
FROM assinantes
LEFT JOIN (
SELECT id_assinante, MAX(data_pg) AS max_data
FROM Historico
WHERE DATE(data_pg) >= '2016-10-01' AND DATE(data_pg) <= '2016-10-31'
GROUP BY id_assinante
) P ON P.id_assinante = assinantes.id
WHERE max_data IS NULL;



5. Re: Dúvida sobre uma consulta no MYSQL

thinomar
thinomar

(usa Linux Mint)

Enviado em 01/11/2016 - 10:17h

E aí, deu certo?


6. Re: Dúvida sobre uma consulta no MYSQL

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 01/11/2016 - 13:12h

JeanzinRJ escreveu:
não funcionam pq, ai ele iria exibir somente os que são como '2016-10' o que eu quero é que ele pegue os que não tem 2016-10 ...
GustavoValerio escreveu:
[quote]JeanzinRJ escreveu: ...

A querie seguinte deveria funcionar:
[...] WHERE pagamentos.data_pg LIKE '2016-10%'
ou
[...] WHERE pagamentos.data_pg LIKE '2016-10-__'
[...]


Ao invés de LIKE '2016-10%' utilize NOT LIKE '2016-10%'







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts