Trazer um dos nomes da "empresa/pessoa" de um cpf.

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
inforjo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 18 Fev 2010 9:37 am
Localização: FORTALEZA

------------------x------------------x------------------x------------------x------------------x------------------x



Quero trazer um dos nomes do campo "empresa/pessoa" de um cpf, sendo que cada cpf existe nomes (strings) diferentes. Exemplo:

Empresa/Pessoa-------------------- CPF
Maria de Oliveira ---------------------000.000.000-01
Maria de Oliveira da S.--------------000.000.000-01
Maria de Olliveira S.------------------000.000.000-01
Maria de Olliveira S.------------------000.000.000-01
José Silva ----------------------------- 000.000.000-02
José da Silva---------------------------000.000.000-02
José da Silva -------------------------- 000.000.000-02
José da Silva da Rocha --------------000.000.000-02

meu select antigo fiz um agrupamento por empresa/pessoal trazia assim:
Empresa/Pessoa ----------------------Qde------------------valor
Maria de Oliveira -----------------------1--------------------2,00------000.000.000-01
Maria de Oliveira da S.-----------------1--------------------3,00-----000.000.000-01
Maria de Olliveira S.--------------------2--------------------10,00----000.000.000-01
José Silva --------------------------------1-------------------2,00------000.000.000-02
José da Silva-----------------------------2--------------------8,00-----000.000.000-02
José da Silva da Rocha ----------------1--------------------3,00 ----000.000.000-02

Quero assim:
Empresa/Pessoa--------------------Qde-------------------valor
Maria de Oliveira ---------------------- 4------------------15,00 -----000.000.000-01
José Silva ------------------------------- 4------------------13,00----- 000.000.000-02

Será que isso existe solução?

meu select traz cpf, qde de cpf e valor.

Selecionar tudo

  select
        a.cpf_cnpj,
        count(a.cpf_cnpj) qde_cpf_cnpj,
        to_char(sum(a.ait_valornotificacao) , '999G999G999G999D99', 'NLS_NUMERIC_CHARACTERS = '',.'' ')  valor_ait
from sistema.t015ait a, sistema.t015notificacao n
 where n.emp_codigoempresa = 'AMC'
   and n.tpn_codigo = 2
   and a.emp_codigoempresa = n.emp_codigoempresa
   and a.ait_serie = n.ait_serie
   and a.ait_numero = n.ait_numero
   and a.ait_tipo not in ('M', 'E')
   group by a.cpf_cnpj 
   order by a.cpf_cnpj

mas quero "empresa/pessoa", "qde_cpf/cnpj" e" valor".


Agradeço desde já.


------------------x------------------x------------------x------------------x------------------x
NiNo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 62
Registrado em: Seg, 11 Jul 2005 2:03 pm
Localização: são Paulo
NiNo
Developer

Olá.:D

É responder de forma rápida sem alguns testes preliminares mas, tento lhe dar uma solução com o código abaixo. Se eu entendi bem o problema acho que isto lhe resolverá a situação. Existem muitas outras maneiras de resolver o problema, a que proponho foi a que pareceu mais imedita.

Abços

Selecionar tudo

Select x.cpf_cnpj
      ,y.Nome_Contribuinte
      ,x.qde_cpf_cnpj
      ,x.valor_ait
  From sistema.t015ait y /*Tabela que contem o nome do contribuinte para fazer um JOIN com a tabela "x"*/
      ,(Select a.cpf_cnpj
              ,Count(a.cpf_cnpj) qde_cpf_cnpj
              ,To_Char(Sum(a.ait_valornotificacao)
                      ,'999G999G999G999D99'
                      ,'NLS_NUMERIC_CHARACTERS = '',.'' ') valor_ait
          From sistema.t015ait         a
              ,sistema.t015notificacao n
         Where n.emp_codigoempresa = 'AMC'
               And n.tpn_codigo = 2
               And a.emp_codigoempresa = n.emp_codigoempresa
               And a.ait_serie = n.ait_serie
               And a.ait_numero = n.ait_numero
               And a.ait_tipo Not In ('M', 'E')
         Group By a.cpf_cnpj
         Order By a.cpf_cnpj) x
 Where y.num_cpf.cnpj = x.cpf_cnpj;
Espero ter ajudade :D :-o
inforjo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 18 Fev 2010 9:37 am
Localização: FORTALEZA

Select x.cpf_cnpj
,y.Nome_Contribuinte
,x.qde_cpf_cnpj
,x.valor_ait
From sistema.t015ait y /*Tabela que contem o nome do contribuinte para fazer um JOIN com a tabela "x"*/
,(Select a.cpf_cnpj
,Count(a.cpf_cnpj) qde_cpf_cnpj
,To_Char(Sum(a.ait_valornotificacao)
,'999G999G999G999D99'
,'NLS_NUMERIC_CHARACTERS = '',.'' ') valor_ait
From sistema.t015ait a
,sistema.t015notificacao n
Where n.emp_codigoempresa = 'AMC'
And n.tpn_codigo = 2
And a.emp_codigoempresa = n.emp_codigoempresa
And a.ait_serie = n.ait_serie
And a.ait_numero = n.ait_numero
And a.ait_tipo Not In ('M', 'E')
Group By a.cpf_cnpj
Order By a.cpf_cnpj) x
Where
Erro aqui--> y.num_cpf.cnpj
= x.cpf_cnpj;
Erro: identificador invalido
inforjo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 18 Fev 2010 9:37 am
Localização: FORTALEZA

Descupa ai, eu obviu que tem que colocar o campo correto, erro meu.
mas ta dando o erro:

Selecionar tudo

 Select x.cpf_cnpj 
      ,y.ait_nomeinfrator, 
       count(x.cpf_cnpj) ait_cpf_cnpj
      ,x.valor_ait 
  From sistema.t015ait y /*Tabela que contem o nome do contribuinte para fazer um JOIN com a tabela "x"*/ 
      ,(Select a.cpf_cnpj 
              ,Count(a.cpf_cnpj) qde_cpf_cnpj 
              ,To_Char(Sum(a.ait_valornotificacao) 
                      ,'999G999G999G999D99' 
                      ,'NLS_NUMERIC_CHARACTERS = '',.'' ') valor_ait 
          From sistema.t015ait         a 
              ,sistema.t015notificacao n 
         Where n.emp_codigoempresa = 'AMC' 
               And n.tpn_codigo = 2 
               And a.emp_codigoempresa = n.emp_codigoempresa 
               And a.ait_serie = n.ait_serie 
               And a.ait_numero = n.ait_numero 
               And a.ait_tipo Not In ('M', 'E') 
         Group By a.cpf_cnpj 
         Order By a.cpf_cnpj) x 
 Where y.cpf_cnpj = x.cpf_cnpj; 
ERRO: not a single-group group function
inforjo
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Qui, 18 Fev 2010 9:37 am
Localização: FORTALEZA

Voltei a estaca zero.

Selecionar tudo

  Select distinct x.cpf_cnpj, x.qde_cpf_cnpj, x.valor_ait, y.ait_nomeinfrator
  From sistema.t015ait y /*Tabela que contem o nome do contribuinte para fazer um JOIN com a tabela "x"*/ 
      ,(Select a.cpf_cnpj 
              ,Count(a.cpf_cnpj) qde_cpf_cnpj 
              ,To_Char(Sum(a.ait_valornotificacao) 
                      ,'999G999G999G999D99' 
                      ,'NLS_NUMERIC_CHARACTERS = '',.'' ') valor_ait 
          From sistema.t015ait         a 
              ,sistema.t015notificacao n 
         Where n.emp_codigoempresa = 'AMC' 
               And n.tpn_codigo = 2 
               And a.emp_codigoempresa = n.emp_codigoempresa 
               And a.ait_serie = n.ait_serie 
               And a.ait_numero = n.ait_numero 
               And a.ait_tipo Not In ('M', 'E') 
               Group By a.cpf_cnpj 
               Order By a.cpf_cnpj) x 
 Where y.cpf_cnpj = x.cpf_cnpj 
 Order By y.ait_nomeinfrator;
Trazendo a mesma coisa de antes:

Selecionar tudo

Empresa/Pessoa ----------------------Qde------------------valor 
Maria de Oliveira ----------------------1--------------------2,00-----000.000.000-01 
Maria de Oliveira da S.-----------------1--------------------3,00-----000.000.000-01 
Maria de Olliveira S.-------------------2--------------------10,00----000.000.000-01 
José Silva -----------------------------1--------------------2,00-----000.000.000-02 
José da Silva---------------------------2--------------------8,00-----000.000.000-02 
José da Silva da Rocha -----------------1--------------------3,00 ----000.000.000-02 
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes