Retornar quantidade de documentos corretamente

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
fabiodequeiroz
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 31 Jan 2013 2:28 pm

Boa tarde, estou executando o select abaixo onde preciso que me retorne a data, o status V(venda), C(Cancelado), a quantidade de documentos que teve em cada status e a soma do total desses documentos, só que a soma do total eu faço na tabela dos itens e o select esta me retornando no campo Count(b.Status) a quantidade dos itens que tem em cada documento e não a quantidade de documentos que no caso seria 1 em cada Status, como posso resolver isso pra o select não contar essa quantidade de itens da tabela tb_documentoitem?

Selecionar tudo

select distinct a.data,
                b.status,
              --listagg(count(b.status)),
                sum(c.vlrtotal)
  from tb_documento a, tb_documentocupom b, tb_documentoitem c
 where a.empresa = b.empresa
   and a.empresa = c.empresa
   and a.pdv = b.pdv
   and a.pdv = c.pdv
   and a.documento = b.documento
   and a.documento = c.documento
   and a.empresa = 2
   and a.pdv = 13
   and a.data between '25-nov-2015' and '25-nov-2015'
   and a.documento in (2531429, 2531180)
 group by a.data, b.status;
Esse é o retorno do select

DATA...........STATUS......COUNT(B.STATUS)......SUM(C.VLRTOTAL)
25/11/2015......V....................11.......................71,59
25/11/2015......C....................8........................28,13
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Olá fabiodequeiroz,
Utilizar na mesma consulta DISTINCT(de todos campos) e GROUP BY é certeza de algo errado.

1-Você não precisa desse DISTINCT após o select.

2- Se você tem um identificador do documento , você pode facilmente resolver seu problema com um :

Selecionar tudo

, count(DISTINCT <ID_DOCUMENTO>) Total_Documentos
.
fabiodequeiroz
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 31 Jan 2013 2:28 pm

DanielNN deu certo, era isso mesmo que eu queria, muito obrigado.
Responder
  • Informação
  • Quem está online

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