Agrupamento complicado....
Tenho uma tabela de clientes, plano, parcelas, estou querendo saber quantos clientes tem nos planos mas os planos estão ligados as parcelas, e quando eu tento agrupar ele soma pela parcela me dando até 12 vezes.
Sremulador
Curtidas 0
Respostas
Afarias
16/09/2003
pode colocar mais informação ?? tipo o METADATA das tabelas e o que quer mais detalhadamente...
T+
T+
GOSTEI 0
Stci
16/09/2003
Como o afarias pediu, seria legal informar o Metadados para podermos lhe ajudar, caso você não tenha permissão para tal, verifique se o joins estão corretos bem como os agrupamentos, pois independentemente do banco de dados que se usa, se você informar errados tais procedimentos você poder ter resultados imprevissíveis.
GOSTEI 0
Sremulador
16/09/2003
CLIENTES
----------|
COD
NOME
BAIRRO
..........
PARCELAS
----------|
CDCL
CDPA
DATA
VECT
PLANO
........
PLANO
----------|
COD
PLANO
Minha tabela de parcelas sempre tem mais de 1 registro para cada cliente
em certos casos até 24 parcelas
se eu fizer isso
SELECT PA.CDCL, PA.COD, PA.DATA, COUNT(PA.CDCL) FROM PARCELAS PA
INNER JOIN CLIENTES CL ON (CL.COD=PA.CDCL)
INNER JOIN PLANO PL ON (PL.COD=PA.PLANO)
GROUP BY PA.CDCL, PA.COD, PA.DATA
ele me retornara um grupo de várias parcelas e não a soma de todos os planos, tipo
PLANO CLIENTES
1 - 50
2 - 120
3 - 400
................
----------|
COD
NOME
BAIRRO
..........
PARCELAS
----------|
CDCL
CDPA
DATA
VECT
PLANO
........
PLANO
----------|
COD
PLANO
Minha tabela de parcelas sempre tem mais de 1 registro para cada cliente
em certos casos até 24 parcelas
se eu fizer isso
SELECT PA.CDCL, PA.COD, PA.DATA, COUNT(PA.CDCL) FROM PARCELAS PA
INNER JOIN CLIENTES CL ON (CL.COD=PA.CDCL)
INNER JOIN PLANO PL ON (PL.COD=PA.PLANO)
GROUP BY PA.CDCL, PA.COD, PA.DATA
ele me retornara um grupo de várias parcelas e não a soma de todos os planos, tipo
PLANO CLIENTES
1 - 50
2 - 120
3 - 400
................
GOSTEI 0
Afarias
16/09/2003
Algo assim ::
SELECT P.PLANO, COUNT(*)
FROM CLIENTES C
INNER JOIN PARCELAS P ON (P.CDCL = C.COD)
GROUP BY P.PLANO
ou
SELECT PL.PLANO, COUNT(*)
FROM CLIENTES C
INNER JOIN PARCELAS P ON (P.CDCL = C.COD)
INNER JOIN PLANO PL ON (PL.COD = P.PLANO)
GROUP BY PL.PLANO
T+
SELECT P.PLANO, COUNT(*)
FROM CLIENTES C
INNER JOIN PARCELAS P ON (P.CDCL = C.COD)
GROUP BY P.PLANO
ou
SELECT PL.PLANO, COUNT(*)
FROM CLIENTES C
INNER JOIN PARCELAS P ON (P.CDCL = C.COD)
INNER JOIN PLANO PL ON (PL.COD = P.PLANO)
GROUP BY PL.PLANO
T+
GOSTEI 0
Sremulador
16/09/2003
A pesquisa continua somando a quantidade de parcela para me da o total de clientes por plano, no caso o plano 5 tem 2 clientes e me retornou somou 24 registro me dizendo que tenho 24 clientes para o plano 5 enquanto o certo seria 2 clientes
GOSTEI 0