RES: [firebase-br] Ajuda SELECT

Ton - Asi hevertonc em hotmail.com
Qui Jan 6 10:27:29 -03 2005


   É só vc colocar um Where em cada subselect indicando a chave que liga
cada um deles a cada linha retornado pelo seu select maior. Pelo que vi,
vc tem um REGAD...(alguma coisa) e esta é a chave, certo? Esse campo
existe em cada subselect? Se sim adiciona um Where a.cliente =
c.cliente...
   Detalhe, use um ALIAS diferente para cada subselect.

   Espero ter ajudado...

   Abraçcos...

        Ton
Analista de Sistemas
 DotCom Informática
 
"A informação não é um produto,
mas sim a matéria prima." (Ton)


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em nome de Jean R. Streleski
Enviada em: quarta-feira, 05 de janeiro de 2005 17:38
Para: Grupo Firebird
Assunto: [firebase-br] Ajuda SELECT


Olá 

    Estou rodando um select com alguns subselect's para fazer somatórios
e contagens e gostaria que o group by agrupassem não só o select
principal, mas também os sub-selects. Estou tentando dessa forma:

SELECT B.REGADMINISTR, C.NOME,
       (SELECT COUNT(A.CLIENTE) FROM DIVIDA A WHERE A.DTPAGAMENTO IS
NULL) AS TOTALINAD,
       (SELECT COUNT(A.CLIENTE) FROM DIVIDA A WHERE A.DTPAGAMENTO IS NOT
NULL) AS TOTALPAG,
       (SELECT SUM(A.VLPAGO) FROM DIVIDA A) AS VALORARREC,
       (SELECT SUM(A.VLORIGINAL) FROM DIVIDA A) AS VALORPREVISTO FROM
DIVIDA A
  INNER JOIN CLIENTE B ON A.CLIENTE = B.CLIENTE
  INNER JOIN REGADMINISTRATIVA C ON B.REGADMINISTR = C.REGADMINISTR
WHERE ANO = 2004 GROUP BY B.REGADMINISTR, C.NOME ORDER BY
B.REGADMINISTR, C.NOME

O Resultado, fica agrupado pelos campos B.REGADMINISTR, C.NOME, mas as
totalizações não são agrupadas pelos campos que estão no group. fica
mais ou menos assim

REGADMINISTR NOME         TOTALINAD TOTALPAG VALORARREC   VALORPREVISTO
1                   ARACATUBA 1130318      645492     164222690
165757443
2                   BAURU        1130318      645492      164222690
165757443

Reparem que os valores trazidos pelos sub select's repetem-se e não são
agrupados pela região(CAMPOS B.REGADMINISTR, C.NOME). Qual seria a forma
correta de fazer isso??Será que só com Stored Procedure mesmo?

Valew a ajuda

Jean R. 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

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.806 / Virus Database: 548 - Release Date: 05/12/2004
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.806 / Virus Database: 548 - Release Date: 05/12/2004
 




Mais detalhes sobre a lista de discussão lista