17 Replies Latest reply: Nov 26, 2014 12:16 PM by Hamilton Junior RSS

    Relacionamento recursivo

    Hamilton Junior

      Boa tarde,

      outro dia abri um Tópico Re: Re: Relacionamento em Cascata (ou algo assim) porém ainda continuo com dúvidas sobre o assunto.

      Preciso de algum material ou exemplos sobre Relacionamento recursivo no Qlikview para eu aprender melhor sobre o assunto, pois minha necessidade inicial foi respondida no tópico anterior mas não consegui ir para frente. Caso necessário poderei postar a minha "nova" duvida sobre este projeto.

        • Re: Relacionamento recursivo
          Yuri Nicolett

          Hamilton, acho mais fácil postar a sua nova dúvida.

          Até tenho alguns materiais, mas o tema de recursividade é pouco abordado.

          • Re: Relacionamento recursivo
            Hamilton Junior

            Boa tarde, ainda estou tentando resolver esse relacionamento, pensei em trabalhar isso no SQL, talvez seja mais facil.

             

            Fiz um codigo que ele me traz a receita, se tiver um produto que tambem seja uma receita ele me traz o numero 1 se nao, traz 0. Dessa forma eu sei se algum item é uma receita ou não, talvez se eu conseguir usar esta condição para sempre que for o numero 1, ele me trazer todos os itens, porém no SQL a consulta retorna mais de um valor por linha e da erro. Sem o banco não sei se vão conseguir entender, mas ta i o codigo

             

             

             

             

            select

              c.indc_descricao,

              a.indd_cod1 as cod_receita,

              c.indc_prod_codigo as cod_receita_v,

              a.indd_cod2,

              Coalesce((select 1 as rec from industc b where a.indd_cod2=b.indc_prod_codigo and a.indd_unid_codigo=indc_unid_codigo),0) as Prod_e_receita,

              (select d.prod_descricao from produtos d where a.indd_cod2=d.prod_codigo) as descricao

            from industd a inner join industc c on a.indd_cod1=c.indc_prod_codigo

            where a.indd_unid_codigo='024' and c.indc_unid_codigo='024' and c.indc_prod_codigo='111457'

            group by 1,2,3,4,5

            order by 4;

             

            receita.png

            • Re: Relacionamento recursivo
              Hamilton Junior

              Então, apenas nada dar andamento no tópico que ainda esta aberto, hoje tive um avanço bem significativo com a recursividade em SQL (to achando que vai ser mais fácil do que no Qlikview.

              Vou mandar o código direto do banco de dados apenas para informação:

              Ainda estou pegando um produto fixo, porém estou conseguindo compreender a lógica e vai ficando mais fácil.

               

               

               

              WITH RECURSIVE receitas (indd_cod1, indc_descricao, indd_cod2, indd_unid_codigo) AS

              (

              select

                indd_cod1,

                indc_descricao,

                indd_cod2,

                indd_unid_codigo

              from industd , industc where indd_cod1=indc_prod_codigo and indd_unid_codigo='024' and indc_unid_codigo='024' and indc_prod_codigo='442984'

              UNION ALL

              select

                industd.indd_cod1,

                industc.indc_descricao,

                industd.indd_cod2,

                industd.indd_unid_codigo

              from industd, industc

              INNER JOIN receitas ON indd_cod2=indc_prod_codigo

              where industd.indd_cod1=industc.indc_prod_codigo and industd.indd_unid_codigo='024' and industc.indc_unid_codigo='024'

              )

              select

                indd_cod1,

                indc_descricao,

                indd_cod2,

                prod_descricao,

                indd_unid_codigo,

                Coalesce((select 1 as rec from industc b where indd_cod2=b.indc_prod_codigo and indd_unid_codigo=indc_unid_codigo),0) as Prod_e_receita

              FROM receitas, produtos where indd_cod2=prod_codigo and

              Coalesce((select 1 as rec from industc b where indd_cod2=b.indc_prod_codigo and indd_unid_codigo=indc_unid_codigo),0) <> '1' ;

                • Re: Relacionamento recursivo
                  Yuri Nicolett

                  Hamilton, ainda não consegui parar aqui para te ajudar, até porque sua dúvida requer um investimento de tempo maior, mas assim que tiver um tempo, quero tentar montar alguma coisa em qlikview para você. Se você conseguir fazer em SQL, perfeito! Acredito que ele tenha algumas funções melhores (mais fáceis) em relação a recursividade.

                    • Re: Relacionamento recursivo
                      Hamilton Junior

                      Obrigado Yuri,

                      apenas por vocês estarem respondendo o tópico ja é um grande auxilio que recebo e você tem razao, toma muito tempo, eu estou praticamente estudando apenas isto, missão dada é missão cumprida hehe, então acredito que o SQL eu tenha entendido melhor a logica. Vamos ver pois AGORA que vou começar a parte difícil hehe