Pular para o conteúdo
Visualizando 10 posts - 16 até 25 (de 25 do total)
  • Autor
    Posts
  • #105955
    Avatar de PAULO HENRIQUEPAULO HENRIQUE
    Participante

      @RMAN

      ESTÁ CERTÍSSIMO, EXATAMENTE ISSO QUE QUERIA.
      ESTOU MUITO SATISFEITO COM SUA AJUDA E TAMBÉM DO OUTRO AMIGO ANDREI.
      PARABÉNS PELO CONHECIMENTO DE VOCÊS, CHEGAREI LÁ..RS

      NÃO QUERENDO ABUSAR MAS COMO FICARIA PARA DUAS TABELAS.

      EXEMPLO:

      FAT_MOVIMENTO_ITEM E FAT_MOVIMENTO_CAPA O ÚNICO CAMPO EM COMUM NAS DUAS TABELAS É O NUMERO_NOTA_FISCAL

      SELECT *
      FROM FAT_MOVIMENTO_ITEM A
      WHERE A.ITEM_ESTOQUE = 31025
      AND EXISTS ( select A.Item_Estoque from fat_movimento_capa C
      where C.dta_entrada_saida between to_date(’12/08/2013′,’dd/mm/yyyy’)
      and to_date(’12/08/2013′,’dd/mm/yyyy’)
      and C.Status = ‘F’
      and C.revenda = 1
      and A.Numero_Nota_Fiscal = C.NUMERO_NOTA_FISCAL
      and C.Tipo_Transacao = ‘P01’
      )

      PORÉM O ÚNICO CRITÉRIO QUE ELE ESTÁ ACEITANDO É ESSE “and A.Numero_Nota_Fiscal = C.NUMERO_NOTA_FISCAL” , OUTROS COMO “and C.Status = ‘F'” , ‘and C.Tipo_Transacao = ‘P01′” , “and C.revenda = 1” ELE ESTÁ IGNORANDO. COMO PODERIA RESOLVER ISSO?

      PROMETO QUE É A ULTIMA DÚVIDA.

      Mais uma Vez obrigado

      #105959
      Avatar de rmanrman
      Participante

        @cardoso_ph

        Como assim ignorando?

        Execute o SELECT:


        select A.Item_Estoque from fat_movimento_capa C
        where C.dta_entrada_saida between to_date('12/08/2013','dd/mm/yyyy')
        and to_date('12/08/2013','dd/mm/yyyy')
        and C.Status = 'F'
        and C.revenda = 1
        and C.NUMERO_NOTA_FISCAL = 31025
        and C.Tipo_Transacao = 'P01'

        Retornou algum resultado?

        #105961
        Avatar de PAULO HENRIQUEPAULO HENRIQUE
        Participante

          @RMAN,

          Então com esse select

          SELECT *
          FROM FAT_MOVIMENTO_ITEM A
          WHERE A.ITEM_ESTOQUE = 31025
          AND EXISTS ( select A.Item_Estoque from fat_movimento_capa C
          where C.dta_entrada_saida between to_date(’12/08/2013′,’dd/mm/yyyy’)
          and to_date(’12/08/2013′,’dd/mm/yyyy’)
          and C.Status = ‘F’
          and C.revenda = 1
          and A.Numero_Nota_Fiscal = C.NUMERO_NOTA_FISCAL
          and C.Tipo_Transacao = ‘P01’
          )

          Eu consigo visualizar as notas do dia 12/08 com esse item 31025 , porém não estou conseguindo filtrar pelo status de ‘F’ , ele está trazendo duas notas, uma com Status ‘A’ e outra com Status ‘F’. Correto seria trazer somente a nota que tiver esse item, no dia 12/08 , com transação ‘P01’ que esteja com status de ‘F’fechada.

          o campo Status,data,Numero de nota,Tipo de transação fazem parte da tabela fat_movimento_capa.
          O campo Numero de nota, tipo de transação,item fazem parte da outra tabela fat_movimento_item.

          Obrigado Pela Ajuda.

          #105964
          Avatar de rmanrman
          Participante

            @cardoso_ph

            Neste caso EXITS não é saída. Só para você entender porque está sendo ignorado os filtros. O SELECT está trazendo o FAT_MOVIMENTO que possuí o ITEM_ESTOQUE = 31025 e que possuí um relacionamento com FAT_MOVIMENTO_CAPA, mais os filtros especificado, ou seja, se tiver pelo menos 1 registro em FAT_MOVIMENTO_CAPA que satisfaz os filtros internos, vai trazer o ITEM_ESTOQUE = 31025 da tabela FAT_MOVIMENTO_ITEM.

            Faça assim:


            SELECT *
            FROM FAT_MOVIMENTO_ITEM A
            INNER JOIN fat_movimento_capa C on C.NUMERO_NOTA_FISCAL = A.Numero_Nota_Fiscal
            WHERE A.ITEM_ESTOQUE = 31025
            AND C.dta_entrada_saida between to_date('12/08/2013','dd/mm/yyyy') and to_date('12/08/2013','dd/mm/yyyy')
            and C.Status = 'F'
            and C.revenda = 1
            and C.Tipo_Transacao = 'P01'

            #105969
            Avatar de PAULO HENRIQUEPAULO HENRIQUE
            Participante

              @RMAN

              Inseri um anexo nesse post com minha tela, na tela você verá que o select de baixo, mostra as duas notas, mesmo colocando o filtro em questão continua aparecendo, é como se não estivesse filtrando corretamente.

              Veja se consegue visualizar.

              Obrigado

              Attachments:
              #105971
              Avatar de rmanrman
              Participante

                @cardoso_ph

                Creio que faltou filtrar a nota fiscal, você filtrou apenas o item, provavelmente, está trazendo 2 itens de notas distintas.

                #105972
                Avatar de PAULO HENRIQUEPAULO HENRIQUE
                Participante

                  @Rman,

                  Igualei os campos de Serie de nota, e consegui trazer somente a nota em questão .
                  Exemplo:
                  …..
                  and C.Serie_Nota_Fiscal = A.Serie_Nota_Fiscal

                  Agora, como ficaria o update para esse caso.

                  update FAT_MOVIMENTO_ITEM A
                  set A.Base_Pis = 0
                  [b]????????
                  [/b]INNER JOIN fat_movimento_capa C on C.NUMERO_NOTA_FISCAL = A.Numero_Nota_Fiscal
                  WHERE A.ITEM_ESTOQUE = 31025
                  AND C.dta_entrada_saida between to_date(’12/08/2013′,’dd/mm/yyyy’) and to_date(’12/08/2013′,’dd/mm/yyyy’)
                  and C.status = ‘F’
                  and C.revenda = 1
                  and C.Tipo_Transacao = ‘P01’
                  and C.Serie_Nota_Fiscal = A.Serie_Nota_Fiscal

                  #105973
                  Avatar de rmanrman
                  Participante

                    @cardoso_ph

                    Bom, ficou falando uma ligação, infelizmente no oracle não da pra fazer INNER JOIN no UPDATE, apenas no SELECT. Então voltamos para o EXISTS. Agora com todas as ligações.


                    SELECT *
                    FROM FAT_MOVIMENTO_ITEM A
                    WHERE A.ITEM_ESTOQUE = 31025
                    AND EXISTS (
                    select 1
                    from fat_movimento_capa C
                    where C.Serie_Nota_Fiscal = A.Serie_Nota_Fiscal
                    and C.NUMERO_NOTA_FISCAL = A.Numero_Nota_Fiscal
                    C.dta_entrada_saida between to_date('12/08/2013','dd/mm/yyyy')
                    and to_date('12/08/2013','dd/mm/yyyy')
                    and C.Status = 'F'
                    and C.revenda = 1
                    and C.Tipo_Transacao = 'P01'
                    )


                    update FAT_MOVIMENTO_ITEM A
                    set A.Base_Pis = 0
                    WHERE A.ITEM_ESTOQUE = 31025
                    AND EXISTS (
                    select 1
                    from fat_movimento_capa C
                    where C.Serie_Nota_Fiscal = A.Serie_Nota_Fiscal
                    and C.NUMERO_NOTA_FISCAL = A.Numero_Nota_Fiscal
                    C.dta_entrada_saida between to_date('12/08/2013','dd/mm/yyyy')
                    and to_date('12/08/2013','dd/mm/yyyy')
                    and C.Status = 'F'
                    and C.revenda = 1
                    and C.Tipo_Transacao = 'P01'
                    )

                    #105975
                    Avatar de PAULO HENRIQUEPAULO HENRIQUE
                    Participante

                      @Rman

                      Só tenho a agradecer, Parabéns pelo seu conhecimento.

                      Como que valido sua resposta como correta aqui no fórum?

                      Hoje estou com poucas movimentações, mas quando aumentar a demanda, vou procurar como fazer esses selects que me passou um dentro do outro. Porque seria melhor, mais automático,

                      Muito obrigado.

                      #105982
                      Avatar de rmanrman
                      Participante

                        @cardoso_ph

                        Creio que não tem esse recurso de sinalizar a resposta correta.

                      Visualizando 10 posts - 16 até 25 (de 25 do total)
                      • Você deve fazer login para responder a este tópico.
                      plugins premium WordPress