12 Replies Latest reply: Dec 14, 2017 6:31 AM by Diego Goes RSS

    Conjuntos

    Diego Goes

      Olá pessoal, por favor, preciso de ajuda na tabela hipotética a seguir. Eu quero que na coluna “COMPRADOR” mostre apenas os nomes que também estão na coluna “VENDEDOR”, em outras palavras, desejo observar a relação de vendedores com compradores que também sejam vendedores. A tabela a seguir possui poucos dados, mas, em uma tabela com centenas de dados, não seria interessante selecionar um por um. Poderiam me ajudar com essa questão?

       

      Vendedor

      Valor

      Comprador

      João

      500

      André

      300

      Fernando

      Pedro

      600

      João

      500

      José

      300

      Júlia

      Mateus

      700

      Felipe

      500

      João

      Carlos

      800

      Pedro

      200

      Mateus

      100

      Tiago

      José

      900

      Mateus

      400

      Lucas

      200

      Fernando

      Lucas

      100

      Felipe

      300

      Pedro

      400

      Ana

        • Re: Conjuntos
          Fer Fer

          Diego buenas tardes

          este Script te puede servir:

          TMP:
          LOAD * Inline
          [
          Vendedor, Valor,    Comprador,
          João, 500, André,
          João, 300, Fernando,
          Pedro,     600, João,
          Pedro,     500, José,
          Pedro,     300, Júlia,
          Mateus,    700, Felipe,
          Mateus,    500, João,
          Carlos,    800, Pedro,
          Carlos,    200, Mateus,
          Carlos,    100, Tiago,
          José, 900, Mateus,
          José, 400, Lucas,
          José, 200, Fernando,
          Lucas,     100, Felipe,
          Lucas,     300, Pedro,
          Lucas,     400, Ana,
          ]
          ;


          NoConcatenate

          SUMARY:
          LOAD 'Vendedor'  AS TP, Vendedor AS Nombre,Valor  Resident TMP;
          LOAD 'Comprador' AS TP, Comprador AS Nombre,Valor  Resident TMP;


          pvt.png

          • Re: Conjuntos
            sodre michelly

            Olá Amigo,

             

            Veja se atende:

             

            TESTE:

            LOAD * INLINE [

                VENDEDOR, Valor, COMPRADOR

                João, 500, André

                João, 300, Fernando

                Pedro, 600, João

                Pedro, 500, José

                Pedro, 300, Júlia

                Mateus, 700, Felipe

                Mateus, 500, João

                Carlos, 800, Pedro

                Carlos, 200, Mateus

                Carlos, 100, Tiago

                José, 900, Mateus

                José, 400, Lucas

                José, 200, Fernando

                Lucas, 100, Felipe

                Lucas, 300, Pedro

                Lucas, 400, Ana

            ];

             

             

            Vendedor_Comprador:

            LOAD

             

             

            VENDEDOR as Vendedor_C

             

             

            Resident TESTE

            ;

             

             

            Comprador_V:

            LOAD

             

             

            COMPRADOR as Comparador_V

             

             

            Resident TESTE

            where Exists(VENDEDOR,COMPRADOR)

            ;

             

             

            Principal:

            LOAD

             

             

            VENDEDOR as Comparador_V,

            *

            resident TESTE;

             

             

            DROP Table Vendedor_Comprador,TESTE;

             

             

            Capturar.JPG

              • Re: Conjuntos
                Diego Goes

                Pessoal, esqueci de avisar que estou usando o Sense! E gostaria de saber se haveria alguma expressão para isso que me proponho a fazer. E a ideia é a relação do vendedor com outros compradores que também sejam vendedores.

                  • Re: Conjuntos
                    sodre michelly

                    diegogoes, Com o modelo enviado você consegue desenvolver no Sense sem precisar desenvolver expressões complexas. Para que possamos ajudar com expressão você precisa disponibilizar o modelo de dados, ou melhor, seu projeto QDF.

                     

                    Sem isso fica complicado ajudar.

                     

                    Abraço.

                      • Re: Conjuntos
                        Diego Goes

                        michellysodre, o modelo que você encaminhou faz o que eu consigo fazer por meio da seguinte expressão: if(VENDEDOR = COMPRADOR, VENDEDOR, 'Não se aplica”). Entretanto, assim como o seu script, ele irá mostrar a relação do “vendedor” com ele próprio quando comprador. Por causa dessa situação, surgiu a minha demanda.

                          • Re: Conjuntos
                            sodre michelly

                            diegogoes pode colocar pelo menos no Excel o que deseja? Enviar um print de como quer que os dados apareçam.

                              • Re: Conjuntos
                                Diego Goes

                                Entendo Michely. Segue os prints, fiz algumas alterações, você irá observar que somente “Fernando” seria comprador, mas não seria vendedor. No filtro do excel, basta eu fazer a exclusão do termo “Fernando”. Do mesmo modo isso seria no Sense, entretanto, trabalho com centenas de linhas, não é possível excluir “um por um” (tempo), por essa razão busco uma expressão. Quando eu excluo “Fernando” tenho de fato a relação de vendedores com compradores que também sejam vendedores.


                                Tabela com termo - Fernando.png



                                Tabela sem o termo - Fernando.png

                                  • Re: Conjuntos
                                    Thiago das Chagas cunha

                                    Porque voce precisa fazer isso no Layout ?

                                     

                                    No Script e muito mais perfomatico e mais simples do que dicar fazendo If em  layout,

                                     

                                    Sinceramente eu nao to entendo direito o que tu queres, desculpa, porque me parece uma coisa, mas agora ta parecendo outra...so me ajuda ve se eu entendi

                                     

                                    Se tem o Fernando...que e vendedor....mas tambem foi comprador ( nao para ele mesmo para outra pessoa) , voce quer saber quando vendedor foi comprador..seria isso ?

                                      • Re: Conjuntos
                                        Diego Goes

                                        Meu caro, foi isso que escrevi desde o primeiro post e nos demais. Relação entre vendedores e compradores. Sim, eu irei fazer isso via layout. O "if" conforme a leitura foi um exemplo para demonstrar que o que foi realizado via script é realizado também pela mesma expressão, ou seja, se for para ser mais simples e performático, acredito que a expressão é mais objetiva.

                                      • Re: Conjuntos
                                        sodre michelly

                                        diegogoes, segue noooovo exemplo rsrsrs...

                                         

                                        Como falei, tem que ser via script essa solução, então segue exemplo.

                                        Lógico que você precisará alterar para os campos chaves da sua base:

                                         

                                         

                                         

                                        Vendas_Comprador:

                                        LOAD * INLINE [

                                            VENDEDOR, Valor, COMPRADOR

                                            João, 500, André

                                            João, 300, Fernando

                                            Pedro, 600, João

                                            Pedro, 500, José

                                            Pedro, 300, Júlia

                                            Mateus, 700, Felipe

                                            Mateus, 500, João

                                            Carlos, 800, Pedro

                                            Carlos, 200, Mateus

                                            Carlos, 100, Tiago

                                            José, 900, Mateus

                                            José, 400, Lucas

                                            José, 200, Fernando

                                            Lucas, 100, Felipe

                                            Lucas, 300, Pedro

                                            Lucas, 400, Ana

                                        ];

                                         

                                         

                                        Join(Vendas_Comprador)

                                         

                                         

                                        Comprador_V:

                                        LOAD

                                         

                                         

                                        COMPRADOR,

                                        'S' as Comparador_V //Vendedor e comprador

                                         

                                         

                                        Resident Vendas_Comprador

                                        where Exists(VENDEDOR,COMPRADOR)

                                         

                                         

                                        Com o identificador 'S' você pode manipular da melhor forma criando a condição na tabela:

                                         

                                        Teste_Comunidade.JPG

                                        ;

                            • Re: Conjuntos
                              Diego Goes

                              Olá pessoal! Como havia dito, desejava uma expressão e para quem estava acompanhando a discussão, a expressão a seguir resolveu o meu problema também:

                               

                               

                              Sum({$<Comprador=p({1<Vendedor>} Vendedor)>} Valor)

                               

                              Por meio dela, consegui excluir da tabela todos os compradores que não eram vendedores, na tabela hipotética em questão era apenas o "Fernando".  Agradeço a contribuição de todos nessa demanda!

                               

                                 

                              VendedorValorComprador
                              JoãoR$500,00Fernando
                              JoãoR$300,00Pedro
                              PedroR$600,00João
                              PedroR$500,00José
                              PedroR$300,00Fernando
                              MateusR$700,00Fernando
                              MateusR$500,00João
                              CarlosR$800,00Pedro
                              CarlosR$200,00Fernando
                              JoséR$100,00João
                              JoséR$900,00Mateus
                              JoséR$400,00Lucas
                              JoséR$200,00Fernando
                              LucasR$100,00Fernando
                              LucasR$300,00Pedro
                              LucasR$400,00Carlos