Fórum Ajuda select com joins #533918
08/10/2015
0
Estou com uma dúvida, tenho um problema onde tenho que modelar uma consulta que mostre o quantitativo de cliente de uma concessionária, conforme o modelo do carro, que é exatamente o que o select abaixo está fazendo:
SELECT COUNT(ATENDIMENTO.CODIGO) AS QUANTITATIVO, CARRO.MODELO, COUNT(CLIENTE.CODIGO) AS CLIENTE FROM ENCAMINHAMENTO RIGHT OUTER JOIN ATENDIMENTO ON (ENCAMINHAMENTO.CODIGO = ATENDIMENTO.CODIGO) LEFT OUTER JOIN CLIENTE ON (ATENDIMENTO.CODIGO = CLIENTE.CODIGO) RIGHT OUTER JOIN CARRO ON (ENCAMINHAMENTO.FKCARROFK = CARRO.CODIGO) GROUP BY CARRO.MODELO
O problema é que na contagem ele deve contar um cliente somente uma vez e o cliente deve ser contado conforme o modelo mais caro. por exemplo se o cliente tem uma Mercedes, uma Hilux, e um Uno, eu não vou contar ele 3 vezes, mais somente uma vez e no grupo da mercedes. SE o cliente tiver 10 carros, eu vou contar ele somente uma vez, no modelo do carro mais carro que ele possui.
Se alguém puder ajudar valeu!
Diogenes Pires
Curtir tópico
+ 0Posts
08/10/2015
Isaac Jose
voce vai precisar pegar o valor do carro e trazer na consulta somente o max(valor) valor.
Gostei + 0
08/10/2015
Marcos P
Faz o seguinte... vai no Fiddle cria tua estrutura de dados lá e coloca alguns registros para teste.
( pode ser MySql ou Sql Server, mesmo... )
Depois, avisa aqui que te ajudo com a query.
Gostei + 0
08/10/2015
Diogenes Pires
Gostei + 0
08/10/2015
Marcos P
Por exemplo : um JOIN entre (ATENDIMENTO.CODIGO = CLIENTE.CODIGO) jamais vai funcionar pois ambos são AUTO_INCREMENT nas suas tabelas de origem...
"CODIGO" é uma chave genérica que tem o mesmo nome em todas as tabelas, mas representam ligações diversas nos relacionamentos...
Outro problema, o uso indistinto de RIGHT e LEFT JOIN pode indicar que você está perdido em relação ao uso correto das chaves nos relacionamentos.
Revise a estrutura e os relacionamentos, garantindo que as chaves estrangeiras apontem para as chaves primárias corretas !
Por exemplo : (ATENDIMENTO.CODIGO = CLIENTE.CODIGO) deve ser trocado por (ATENDIMENTO.CLIENTEFK = CLIENTE.CODIGO).
Se precisar de ajuda, ponha teu skype aqui que eu te chamo quando tiver um tempo.
Ok ?!?
Gostei + 0
10/10/2015
Diogenes Pires
Gostei + 0
16/10/2015
Diogenes Pires
Ainda não consegui resolver aquele problema preciso de uma ideia de como essa consulta vai buscar os carros removendo os repetidos. Meu Skype diogenes.ermeson
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)