Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Base de conhecimento

Alterar uma consulta à base de dados dinamicamente

fvilelabr
Alteryx
Alteryx
Created

Imagine o cenário onde voce precisa chamar uma consulta a uma base de dados no entanto a condição da consulta pode mudar de acordo com os dados definidos pelo usuário ou pelos dados que estão passando pelo fluxo. Então, como é possível chamar uma consulta a dados dinamicamente alterando os seus parametros em tempo de execuçao do fluxo?

 

A resposta é: Usando a Ferramenta de Entrada Dinamica

 

Vamos a um caso de exemplo: Usuário necessita buscar informações de histórico de vendas das lojas. Dependendo do dado de entrada do fluxo, a escolha dessas lojas poderá mudar dinamicamente:

 

1.png

 

Passo 1: Preparar os dados que serão passados dinamicamente para a consulta

 

Na imagem abaixo podemos ver uma coluna chamada "StoreNumber" com os valores 107 e 105, que serão as lojas que iremos buscar na base de dados no momento de execução do fluxo: 

fvilelabr_0-1628861014381.png

 

Uma lista de dados para uma consulta SQL precisa estar entre aspas simples ( ' ' ), por isso, vamos inserir uma Ferramenta de Fórmula para fazer esse tratamento:

 

fvilelabr_1-1628861089626.png

 

Com o dado já entre aspas simples, agora é necessário concatena-los para que fiquem em uma unica coluna, um do lado do outro. Para isso, vamos utilizar a Ferramenta de Sumarizar e ação de concatenar, como na imagem abaixo:

 

fvilelabr_2-1628861204399.png

 

Compare o resultado antes e depois da ferramenta. Antes tinhamos uma coluna de Store Numbers com os dados um em cada linha. Depois, há um único registro ou célula contendo todas as Stores Number com aspas ao redor de cada uma.

 

Muito bem, agora está começando a parecer algo que pode ser inserido em uma consulta, mas ainda falta colocar essa lista dentro de paranteses. () . Portanto, uma Ferramenta de Fórmula irá resolver isso:

 

fvilelabr_4-1628861341926.png

 

Passo 2: Chamar a consulta

 

Uma vez que a lista de dados está pronta para ser enviada dinamicamente para a consulta, vamos usar a Ferramenta de Entrada Dinamica para fazer essa chamada:

 

fvilelabr_5-1628861421338.png

No modelo de fonte de dados de entrada:

 

1- definir a consulta para extrair todas as colunas que desejo da tabela e escolher uma lista de lojas inicial.

2- configurar  a ferramenta para modificar a consulta SQL substituindo uma string específica. A ferramenta substituirá a lista default da consulta pela nova lista de Store Number armazenadas na coluna Concat_StoreNumbers:

  

fvilelabr_6-1628861450623.png

 

fvilelabr_7-1628861471680.png

 

Feito isso e ao executar o fluxo, a consulta nova retornará os dados desejados:

 

fvilelabr_8-1628861498208.png

 

 

Comentários

Bastante útil!

Thableaus
17 - Castor
17 - Castor

Eu particularmente gosto muito do Dynamic Input. Uma outra maneira interessante é usar o Dynamic Input In-DB, pois você consegue montar uma query em extenso pelo Alteryx e enviar ao banco. Acho ainda mais dinâmico e bem poderoso se usado corretamente!

Contribudores
Rótulos