Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #104360
    MaxSteel
    Participante

      Boa tarde,

      Estou com um problema no banco oracle 11g. Tenho um select que pega dados do cabeçalho da nota e com isto traz a data emissão correta para cada registro, mas quando adiciono os itens da nota a data de emissão passa a ser a data inicial do filtro.

      exemplo:
      select nota, data_saida, valor
      from notacab
      where filial = :filial
      and data_saida between :dtini and :dtfim
      and nota between :notaini and :notafim;

      select nota, data_saida, valor
      from notacab, notaitem
      where notacab.filial = :filial
      and notacab.data_saida between :dtini and :dtfim
      and notacab.nota between :notaini and :notafim
      and notacab.nota = notaitem.nota
      and notaitem.quantidade > 0
      group by nota, data_saida, valor;

      alguém já viu algo parecido?

      desde já obrigado.

      #104361
      rman
      Participante

        @MaxSteel

        Não consegui entender a sua dúvida. Mas independente disso achei estranho o uso do GROUP BY, qual a necessidade dele ? Não foi usado nenhuma função de agrupamento…

        #104362
        MaxSteel
        Participante

          Rman,

          so utilizei o group by para trazer apenas um registro já que estou vinculando cabeçalho da nota com os itens e que não quero que sai registros duplicados. Com relação ao problema e seguinte quando faço o select apenas no cabeçalho a data de emissão da nota vem corretamente, mas quando estou unindo com os itens da nota a data de emissão da nota muda e sai a da igual a do parâmetro :dtini.

          #104363
          rman
          Participante

            @MaxSteel

            Analise melhor o retorno da consulta, realmente a data de emissao deve compreender os dados que você está filtrando…

            O que a consulta deve trazer? Foi feito uma junção entre pai e filho, mas só está trazendo informações do pai, você quer trazer apenas os pais que tem filho, é isso? Se for isso utilize EXISTS, desta forma não irá “duplicar” os dados, e você não precisa usar o GROUP BY.

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.