[firebase-br] Ajuda Select

Jean R. Streleski jrs.net em uol.com.br
Ter Jun 7 14:08:32 -03 2005


Olá

    Preciso extrair algumas informaçoes do banco, usando subselect's.
    São dados de duas tabelas basicamente, agrupadas, mas preciso usar o count a partir de diferentes condições de filtragem. O count do select principal retorna corretamente os dados, mas os subselect's sempre retornam 0 ou 1 e não o total correto dos dados.

Apenas para demonstrar a estrutura das tabelas:

CLIENTE
PK: CLIENTE

CLSOCIO(Relacionamento 1 para N (CLIENTE para Sócio)
PK:CLIENTE,DTENTRADA

IDENTIFICACAO(Relacionamente 1 para 1(CLIENTE PARA IDENTIFICACAO)
PK:IDENTIFICACAO

Select q estou tentando usar:   


SELECT CLI.IDENTIFICACAO, IDE.DESCRICAO, COUNT(CLI.CLIENTE) AS TOTALEMPRESAS,
       (SELECT COUNT(CLI1.CLIENTE) FROM CLIENTE CLI1 WHERE CLI1.TIPOPESSOA = 'J'  AND CLI1.CLIENTE=CLI.CLIENTE ) AS NR_CLI_PJ,
       (SELECT COUNT(CLI2.CLIENTE) FROM CLIENTE CLI2 WHERE CLI2.TIPOPESSOA = 'F'  AND CLI2.CLIENTE=CLI.CLIENTE ) AS NR_CLI_PF,
       (SELECT COUNT(SOC1.CLIENTE) FROM CLSOCIO SOC1 WHERE SOC1.TIPOPESSOA = 'J'  AND SOC1.CLIENTE=CLI.CLIENTE ) AS NR_SOC_PJ,
       (SELECT COUNT(SOC2.CLIENTE) FROM CLSOCIO SOC2 WHERE SOC2.TIPOPESSOA = 'F'  AND SOC2.CLIENTE=CLI.CLIENTE ) AS NR_SOC_PF,
       (SELECT COUNT(CLI3.CLIENTE) FROM CLIENTE CLI3 WHERE CLI3.ATIVO = 'S'  AND CLI3.CLIENTE=CLI.CLIENTE ) AS NR_CLI_ATIVO,
       (SELECT COUNT(CLI4.CLIENTE) FROM CLIENTE CLI4 WHERE CLI4.ATIVO = 'N'  AND CLI4.CLIENTE=CLI.CLIENTE ) AS NR_CLI_INATIVO,
       (SELECT COUNT(CLI5.CLIENTE) FROM CLIENTE CLI5 WHERE (CLI5.EMAIL1 IS NOT NULL OR CLI5.EMAIL2 IS NOT NULL) AND
                                                      CLI5.CLIENTE=CLI.CLIENTE) AS NR_CLI_COM_EMAIL,
       (SELECT COUNT(CLI6.CLIENTE) FROM CLIENTE CLI6 WHERE (CLI6.EMAIL1 IS NULL AND CLI6.EMAIL2 IS NULL) AND
                                                      CLI6.CLIENTE=CLI.CLIENTE) AS NR_CLI_SEM_EMAIL
FROM CLIENTE CLI
  INNER JOIN IDENTIFICACAO IDE ON CLI.IDENTIFICACAO = IDE.IDENTIFICACAO
WHERE CLI.IDENTIFICACAO <= 4
GROUP BY CLI.IDENTIFICACAO, IDE.DESCRICAO

Preciso dos totais da tabela CLIENTE E CLSOCIO, agrupados pelo campo CLIENTE.IDENTIFICACAO.

Aguardo o auxílio dos colegas
Obrigado

Jean R. Streleski
Bauru / SP


Mais detalhes sobre a lista de discussão lista