[firebase-br] Ajuda em Select
Jean R. Streleski
jrs.net em uol.com.br
Ter Jan 11 15:04:39 -03 2005
Olá pessoal
Estou com problemas na execução do select abaixo. Vou tentar mostrar a estrutura de chaves das tabelas envolvidas para que vcs possam ter uma idéia de como me ajudar. Segue:
TABLES CHAVE ALIAS NO SELECT RELACIONAMENTO
DIVIDA 3 CAMPOS + CLIENTE A DIVIDA x CLIENTE
CLIENTE CLIENTE B CLIENTE x DIVIDA/ CLIENTE x CIDADE
CIDADE CIDADE C CIDADE X CLIENTE(CIDADE = CIDADE_EMPR)
Preciso retornar os somatórios e totalizações de todas as cidades que se situam em determinada região(VER SEGUNDA CLÁUSULA WHERE). Acontece que, se usar o INNER JOIN para CLIENTE E DIVIDA, o select me retornará apenas as totalizações das cidades que tem REGISTROS na tabela de DÍVIDAS. Preciso que o select retorne os dados de todas as cidades, mesmo que zerados. Sei que para isso, devo usar a cláusula RIGHT, mas como o relacionamento entre DIVIDA E CIDADE passa pela tabela de CLIENTES, não estou sabendo como montar o RIGHT. Segue abaixo o select, com o INNER e precisando adequar o uso do RIGHT.
SELECT B.CIDADE_EMPR, C.NOME, SUM(A.VLPAGO) AS SOMA ,
SUM(A.VLPAGO * 0.6)AS SOMA60,COUNT(B.CLIENTE) AS QTDE
FROM DIVIDA A
INNER JOIN CLIENTE B ON A.CLIENTE = B.CLIENTE
INNER JOIN CIDADE C ON C.CIDADE = B.CIDADE_EMPR
WHERE A.DTPAGAMENTO IS NOT NULL AND
B.CIDADE_EMPR IN (SELECT D.CIDADE FROM REGACIDADE D WHERE D.REGADMINISTR = :reg) AND
ANO = 2004
GROUP BY B.CIDADE_EMPR, C.NOME
ORDER BY B.CIDADE_EMPR, C.NOME
Aguardo a ajuda dos colegas
Um abraço
Jean Rozan Streleski
Bauru / SP
Mais detalhes sobre a lista de discussão lista