Re: [firebase-br] Dúvida Sub-Select FB

Eduardo Jedliczka eduardo em gerasoft.com.br
Seg Jan 17 17:31:52 -03 2005


Bom, você filtra primeiro as cidades que quer e resolve os sub-selects dos
registros encontrados.
Pelo exemplo dado, sim.

Porém eu faria este select de uma forma diferente, já que você realiza
várias funções de agregação para os mesmos registros em sub-selects
distintos.

Como você trabalha com a versão 1.0, a solução seria criar uma View ou uma
SP para melhorar o desempenho da query abaixo...

[s]

=====================
Eduardo Jedliczka
GeraSoft Informática
Apucarana - PR
=====================
----- Original Message ----- 
From: "Jean R. Streleski" <jrs.net em uol.com.br>
To: "Grupo Firebird" <lista em firebase.com.br>
Sent: Wednesday, January 12, 2005 10:43 AM
Subject: [firebase-br] Dúvida Sub-Select FB


> Num Select como esse abaixo, o critério que coloquei no WHERE do Select
Pai vale para os SUB-Selects de seleção???
>
> FB 1.0
>
> SELECT A.CIDADE_EMPR, B.NOME,
>        (SELECT SUM(C.VLORIGINAL)   FROM DIVIDA D
>         WHERE D.DTPAGAMENTO IS NULL AND ANO = 2004
>         PLAN JOIN (D INDEX(DIVIDA_IDX6)) ) AS SOMAINAD,
>        (SELECT COUNT(C.CLIENTE)    FROM DIVIDA E
>         WHERE E.DTPAGAMENTO IS NULL AND ANO = 2004
>         PLAN JOIN (E INDEX(DIVIDA_IDX6)) ) AS QTDEINAD,
>        (SELECT SUM(C.VLPAGO * 0.6) FROM DIVIDA F
>         WHERE F.DTPAGAMENTO IS NULL AND ANO = 2004
>         PLAN JOIN (F INDEX(DIVIDA_IDX6)) ) AS SOMA60INAD
> FROM CLIENTE A
>   INNER JOIN CIDADE B ON A.CIDADE_EMPR = B.CIDADE
>   LEFT OUTER JOIN DIVIDA C ON C.CLIENTE = A.CLIENTE
> WHERE A.CIDADE_EMPR IN (SELECT D.CIDADE FROM REGACIDADE D WHERE
D.REGADMINISTR = :REG)
> GROUP BY A.CIDADE_EMPR, B.NOME
> ORDER BY A.CIDADE_EMPR, B.NOME
>
>
> Valew
> Jean Rozan Streleski
> Bauru / SP
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>





Mais detalhes sobre a lista de discussão lista