• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

4 mensagens neste tópico

Boas

Tenho duas tabelas clientes(id,nome) e contratos(id,cliente,validade(1 se válido)  ).

Os contratos poderão estar em vigor ou não e basicamente o que quero  é uam listagem total de clientes, mas necessito de saber se cada cliente tem pelo menos um contrato em vigor e não estou a conseguir fazer a query.

Para já tenho isto, mas ainda está longe do que quero:

SELECT cliente.nome, contrato.validade
FROM cliente
INNER JOIN contrato ON (contrato.cliente = cliente.cliente_id )
GROUP BY cliente_id

Desde já agradeço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

SELECT clientes.id , clientes.nome, COUNT(contratos.*) as NContratosValidos 
FROM clientes INNER JOIN contratos ON clientes.id=contratos.cliente
WHERE contratos.validade=1
GROUP BY clientes.id

Acho que é isto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim dá-me um erro------>"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AS NContratosValidos FROM"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi exactamente o que querias, mas fazendo só GROUP BY do id, ele não sabe como associar os nomes.

Experimenta com GROUP BY clientes.id, clientes.nome (na query do edsousa) a ver se é isso que pretendes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora