Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

fil79

dúvida SQL

Mensagens Recomendadas

fil79    5
fil79

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
edsousa    0
edsousa

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
fil79    5
fil79

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"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    309
Rui Carlos

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade