Jump to content
asacap1000

[Resolvido] Quando o valor de um campo for igual a anterior trazer vazio no select

Recommended Posts

Galera salve a todos.

 

Gostaria de saber se é possivel e se for como fazer.  Tenho um select de faturamento, e nesta consulta ele me traz o numero da NF, ele me traz os ítens faturados. Gostaria de saber se´no próprio select é possível trazer o numero da NF apenas uma vez, e nas outras linhas que estarão vindo os ítens cobrados estes campos ficarem vazios.

 

Segue exemplo hoje como está e como eu preciso.

 

image.png.5cac7eb47f9845dea95bd8b64675a4b1.png

 

Como eu preciso:

 

image.png.aecf4b67929c8bca0dfabd46a0b03274.png

 

 

Abaixo o select

 

SELECT A.ID_KLIENT COD,
       K.NAME NOME,
       A.BILLITE ITEM,
       I.DESCRIPTION DESC_ITEM,
       SUM(A.MNG) QUANT,
       SUM(ROUND(A.PREIS, 3))  VALOR,
       BO.NR_NF NF
  FROM BILL_OS_ITEM A,
       BILL_ITEM I,
       KLIENTEN K,
       BILL_OS BO,
       (SELECT T.DOCSVE_REF, D.DOCHD_DOC_ID
          FROM FISCAL.DOCSVE T, FISCAL.DOCHD D
         WHERE T.DOCSVE_DOC_PRC_ID = D.DOCHD_DOC_PRC_ID) REFE
 WHERE I.BILLITE = A.BILLITE
   AND A.ID_KLIENT = K.ID_KLIENT
   AND BO.NR_NF = REFE.DOCHD_DOC_ID(+)
   AND BO.ID_KLIENT = K.ID_KLIENT
   AND BO.STATUS <> '80'
   AND BO.ID_OS = A.ID_OS
   AND TRUNC(BO.DATE_EMISS) >= TO_DATE('01/09/2019', 'DD/MM/YYYY')
   AND TRUNC(BO.DATE_EMISS) <= TO_DATE('30/09/2019', 'DD/MM/YYYY')
 GROUP BY A.ID_KLIENT,
          K.NAME,
          A.BILLITE,
          I.DESCRIPTION,
          BO.NR_NF,
          BO.LOTE,
          REFE.DOCSVE_REF
 ORDER BY K.NAME, A.ID_KLIENT, A.BILLITE

 

Share this post


Link to post
Share on other sites

Isto em geral se resolve na camada de aplicação , todavia achei isto , parece ser uma boa ideia.

 

Vou até guardar.

Share this post


Link to post
Share on other sites
12 horas atrás, Motta disse:

Isto em geral se resolve na camada de aplicação , todavia achei isto , parece ser uma boa ideia.

 

Vou até guardar.

Cara muito obrigado ficou perfeito. E olha que procurei!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By danilo759
      Estou com uma dúvida, em uma tabelinha é cadastrado a data em uma coluna e a hora em outra coluna, então para "juntar" podemos usar CONCAT() no SELECT. Tudo certo...
       
      SELECT id, CONCAT(data_ini, ' ', hora_ini) as inicio FROM tabela

      Retorna como esperado:

       

      Minha dúvida é, se eu quiser exibir o horário de término para ficar assim como seria a consulta? Lembrando que não existe as colunas data_final e horario_final.

      2020-09-13 03:00:00 2020-09-13 04:00:00
      2020-09-13 04:00:00 2020-09-13 05:00:00
      2020-09-13 05:00:00 ....
    • By gcors88
      Prezados, desenvolvi um gatilho onde este tem comunicação com outra tabela, uma é a coleta_sinal_vital, e onde o gatilho foi criado é na table  itcoleta_sinal_vital ( esta possui uma fk da primeira), a questão é que dentro do gatilho realizo um select na primeira tabela para consultar o valor inserido em uma coluna da primeira tabela, faço essa consulta baseada nessa fk que esta sendo inserida ou seja where = :new.cd_coleta_sinal_vital, a questão é que no momento em que esse select é executado ele não retorna dado nenhum, acredito que isto ocorre porque a inserção em ambas as tabelas é feito de forma simultânea, pois se comparado posteriormente o valor da coluna sempre é inserido, gostaria de saber se existe alguma forma de aplicar uma espera ou atraso neste gatilho para que ele possa capturar este valor sem problemas, grato!
    • By FabianoSouza
      Pessoal, como se faz para definir a região de um determinado CEP?
      Preciso criar uma flag no meu select para dizer se a pessoa mora na ZL, ZO, ZS ou ZN.
      Alguém tem uma relação de CEP confiável para eu poder iniciar esse trabalho?
       
       
      Obrigado.
    • By NaPraia
      Olá pessoal,
      Estou com um probleminha, eu tenho uma sequence criado num owner (owner_a), executei o comando para criar em outro owner(owner_b):
      grant all on sequence_a to owner_b
      e consegui usar, só que no dia seguinte esse grant sumiu e deu erro: ora-00942: tabela ou view não existe. No owner_a funciona corretamente.
      voltei a executar o comando de grant de funcionou de boa mas de ontem para hoje ocorreu novamente
      E acontece só para essa sequence, as outras do banco, não têm problema, funcionam normalmente
      Eu até pensei em dar um drop e criar de novo mas fico com receio que possa ter algum impacto no sistema que é daqueles que ninguém gosta de mexer, "tá funcionando, não mexe"
      E acontence nos dois ambiente, homologação e produção.
      Obrigado
    • By Matheus Bispo
      Boa noite galera, estou com uma dúvida.
       
      Tenho uma tabela chamada Usuários, onde lá possuo ID, NOME, EMAIL e SENHA.
       
      Estou desenvolvendo um sistema de relatório de logs, e na minha tabela logs, eu tenho o log_usuario e log_afetado, AMBOS REFERENCIAM o ID da tabela Usuários.
       
      A minha dúvida é... Como eu posso trazer os NOMES desses, no select?
       
      O que eu estou fazendo é esse daqui:
       
      $this->Select = "SELECT log.log_id as id, log.log_ip, log.log_usuario, log.log_afetado, log.log_acao, log.log_tempo, log1.usu_nome as dono_nome, log2.usu_nome as afetado_nome FROM logs log    LEFT OUTER JOIN
                  usuarios as log1 ON log_usuario = log1.usu_id LEFT OUTER JOIN
                  usuarios as log2 ON log_afetado = log2.usu_id WHERE
                  log.log_usuario = :log_usuario";
       
      Mas não estou conseguindo trazer os nomes, utilizando um var_dump(), tráz apenas os IDs. O que eu estaria fazendo de errado?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.