[firebase-br] Re: Erro em consulta - AJUDA
Luiz Henrique Severo d Oliveira
lhsevero em rpgsolucoes.com.br
Ter Abr 5 13:37:17 -03 2005
Eduardo,
Qual a diferença em fazer deste modo:
FROM DIVIDA A
INNER JOIN CLIENTE B ON A.CLIENTE = B.CLIENTE
INNER JOIN REGADMINISTRATIVA C ON B.REGADMINISTR = C.REGADMINISTR
E deste?
FROM DIVIDA A
INNER JOIN CLIENTE B INNER JOIN REGADMINISTRATIVA C ON B.REGADMINISTR = C.REGADMINISTR
ON A.CLIENTE = B.CLIENTE
O modo como fiz está errado?
O lance é que eu aprendi deste modo e agora fiquei na dúvida. (para falar a verdade nunca precisei utilizar por isso não sei se dá certo)
Obrigado
Luiz Henrique Severo d Oliveira
RPG Soluçoes
www.rpgsolucoes.com.br
> ------------------------------
>
> Message: 4
> Date: Tue, 05 Apr 2005 09:08:45 -0300
> From: eduardo <eduardo em icontroller.com.br>
> Subject: Re: [firebase-br] Erro em consulta - AJUDA
> To: lista em firebase.com.br
> Message-ID: <d2tv0g$jdr$1 em sea.gmane.org>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Oi Jean,
> Aqui um outro Eduardo
> vou dar umas pequenas opiniôes
>
> SELECT B.REGADMINISTR, C.NOME, SUM(A.VLPAGO) AS SOMA ,
> COUNT(B.CLIENTE) AS QTDE,SUM(A.VLMULTA + A.VLJUROS) AS
> ENCARGOS
> FROM DIVIDA A
> INNER JOIN CLIENTE B ON A.CLIENTE = B.CLIENTE
> INNER JOIN REGADMINISTRATIVA C ON B.REGADMINISTR = C.REGADMINISTR
> WHERE A.DTPAGAMENTO IS NOT NULL AND
> *** A.DIVIDA IN ('01','02','03) ***
> --(A.DIVIDA = '01' OR A.DIVIDA = '02' OR A.DIVIDA = '03') AND
> B.IDENTIFICACAO <= 5 AND
> *** B.BASETERRITORIAL IN (5,13) ***
> --(B.BASETERRITORIAL = 13 OR B.BASETERRITORIAL = 10)
> GROUP BY B.REGADMINISTR, C.NOME
> *** NÃO PRECISA ORDER BY NA MESMA SEQÜÊNCIA DO GROUP BY ***
> *** O PRÓPRIO GROUP BY JÁ FAZ O SERVIÇO ***
> -- ORDER BY B.REGADMINISTR, C.NOME
>
> Boa Sorte, Eduardo
>
> Jean R. Streleski wrote:
> > Confome vc pediu Eduardo:
> >
> > SELECT B.REGADMINISTR, C.NOME, SUM(A.VLPAGO) AS SOMA ,
> > COUNT(B.CLIENTE) AS QTDE,SUM(A.VLMULTA + A.VLJUROS) AS ENCARGOS
> > FROM DIVIDA A
> > INNER JOIN CLIENTE B ON A.CLIENTE = B.CLIENTE
> > INNER JOIN REGADMINISTRATIVA C ON B.REGADMINISTR = C.REGADMINISTR
> > WHERE A.DTPAGAMENTO IS NOT NULL AND
> > (A.DIVIDA = '01' OR A.DIVIDA = '02' OR A.DIVIDA = '03') AND
> > B.IDENTIFICACAO <= 5 AND
> > (B.BASETERRITORIAL = 13 OR B.BASETERRITORIAL = 10)
> > GROUP BY B.REGADMINISTR, C.NOME
> > ORDER BY B.REGADMINISTR, C.NOME
> >
> >
> > Campos chave: CLIENTE = CLIENTE
> > DIVIDA = DIVIDA,ANO,PARCELA,CLIENTE
> >
> > Todos os critérios do where apresentam índices.
> >
> > Obrigado
> >
> > Jean R. Streleski
> > Bauru / SP
> >
Mais detalhes sobre a lista de discussão lista