-
15. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 1, 2016 7:15 AM (in response to Luciano Vasconcelos)O que ele me explicou é que como só vai existir data preenchida quando tiver alguma movimento de produto, então eu deveria usar o Decode para codificar a string para data diretamente no sql, tipo dizendo que quando ele encontrar o formato "yyyyMMdd" ele me tras o campo D3_EMISSAO, quando ele encontrar o espaço ele iria me trazer uma data como exemplo o 19000101 para preencher esse campo vazio.
O que não consegui entender era como eu iria utilizar esse decode lá dentro do sql personalizado no Tableau, pois não tenho muito conhecimento em sql. A ajuda que me deram foi essa dica, o restante o pessoal acaba deixando comigo.
A aspa eu errei ao digitar, seria assim: Decode (D3_EMISSAO, 'yyyyMMdd', ' ', '19000101')
-
16. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Luciano Vasconcelos Sep 1, 2016 7:21 AM (in response to Rafael Marques)Na teoria seria só vc colocar isso no final. Peguei desde a última linha do select.
Substitui o bloco abaixo:
"Movimentação de Itens"."D3_VLRPD" AS "D3_VLRPD"
FROM "TOTVS"."SB1010" "Cadastro de Produtos"
INNER JOIN "TOTVS"."SD3010" "Movimentação de Itens" ON ("Cadastro de Produtos"."B1_COD" = "Movimentação de Itens"."D3_COD")
por esse:
"Movimentação de Itens"."D3_VLRPD" AS "D3_VLRPD",
Decode ("Movimentação de Itens"."D3_EMISSAO", 'yyyyMMdd', ' ', '19000101') AS "D3_EMISSAO"
FROM "TOTVS"."SB1010" "Cadastro de Produtos"
INNER JOIN "TOTVS"."SD3010" "Movimentação de Itens" ON ("Cadastro de Produtos"."B1_COD" = "Movimentação de Itens"."D3_COD")
Se esse decode estiver OK vai funcionar.
-
17. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 1, 2016 10:45 AM (in response to Luciano Vasconcelos)Utilizei o SQL, mas agora teve o problema de ele me trazer somente a data 19000101. Não funcionou.
Você saberia como trazer somente as datas onde estejam preenchidas, utilizando o SQL que o Tableua cria e postei aqui? Pois esse Decode não funcionou.
-
18. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Jan Paulo salvador Sep 1, 2016 10:53 AM (in response to Luciano Vasconcelos)Consegue colocar aqui um exemplo do return?
Se a coluna em particular for do tipo data ou datetime, utilize datepart, sendo que o and do campo data deve ser is not null.
-
19. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Luciano Vasconcelos Sep 1, 2016 10:57 AM (in response to Rafael Marques)Como eu disse não entendi bem esse decode.
Precisa entender direitinho o que ele fez.
Até onde eu entendi, ele procurou a string 'yyyyMMdd' no campo D3_EMISSAO, não encontrou e colocou '19000101' para todas as datas(seria o Else).
Eu tentaria isso:
Decode ("Movimentação de Itens"."D3_EMISSAO", ' ', '19000101', "Movimentação de Itens"."D3_EMISSAO") AS "D3_EMISSAO"
Olha esse link para entender:
-
20. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 1, 2016 11:05 AM (in response to Jan Paulo salvador)A coluna D3_EMISSAO é uma string, data no formato 20160901, que no caso é 01/09/2016. O problema é que preciso trazer apenas os dados quando esse campo estiver preenchido, pois a casos onde o campo não vai estar preenchido pois não houve movimentação de algum item, então o campo tem um espaço "vazio" dentro dele, por isso recebo aquele erro no tableau. Depois que eu conseguisse trazer apenas quando tiver preenchido ai eu transformo em data utilizando o dataparse.
Eu vi esse site, mas como não entendi esse decode e pouca experiencia com sql, não soube como utilizar. Mas vou testar o que você me passou.
-
21. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Luciano Vasconcelos Sep 1, 2016 11:11 AM (in response to Rafael Marques)É como te expliquei: ele procurou a string 'yyyyMMdd' no campo D3_EMISSAO, não encontrou e colocou '19000101' para todas as datas(seria o Else).
Testa com essa linha no lugar do outro decode:
Decode ("Movimentação de Itens"."D3_EMISSAO", ' ', '19000101', "Movimentação de Itens"."D3_EMISSAO") AS "D3_EMISSAO"
Depois vê o dateparse. Primeiro tenta trazer o dado.
-
22. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 1, 2016 11:34 AM (in response to Rafael Marques)Funcionou o último código que você postou Decode ("Movimentação de Itens"."D3_EMISSAO", ' ', '19000101', "Movimentação de Itens"."D3_EMISSAO") AS "D3_EMISSAO". Ele trouxe apenas anos válidos, depois converti em data utilizando Dataparse, o problema é que agora não consigo utilizar ano e mês para filtro.
-
23. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Luciano Vasconcelos Sep 2, 2016 4:54 AM (in response to Rafael Marques)Rafael, se você têm a data você têm o ano e mês.
Você pode criar Datas personalizadas clicando com o botão direito no campo data e criando ano e mês. Depois coloca as datas personalizadas no filtro.
-
24. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 2, 2016 10:16 AM (in response to Luciano Vasconcelos)Luciano, deu certo incluir aquela outra linha que você falou e usar as datas personalizadas.
Agora tive um problema ao criar uma nova conexão que é uma outra tabela do banco e tenho que também filtrar as datas em branco.
Fiz a mesma coisa que havia feito para a tabela anterior, mas ele me trouxe datas em branco, é como se o código não tivesse funcionado. Poderia me ajudar?
O campo de data que vou utilizar é o L2_YDTUSR .
-
25. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques Sep 6, 2016 4:37 AM (in response to Rafael Marques)Luciano Vasconcelos e JAN PAULO SALVADOR
Retornando com a resolução que tive para o problema. Seguindo um dica de um rapaz da empresa onde estava, consegui filtrar somente as datas válidas diretamente no sql utilizando o código.
CASE WHEN "Itens do Orçamento de Vendas"."L2_YDTUSR"=' ' THEN '19000101'
WHEN "Itens do Orçamento de Vendas"."L2_YDTUSR"<>' ' THEN L2_YDTUSR END AS L2_YDTUSR,
L2_YDTUSR é o meu campo de Data em string na tabela. Após a resolução do problema com a data, fiz a conversão para data utilizando dataparse.
Obrigado pela ajuda
-
26. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Paulo Dantas May 16, 2017 5:38 AM (in response to Rafael Marques)Rafael Marques, sobre a questão de filtrar as datas nulas ou em branco na própria fonte, tem como, precisa clicar em editar na aba de fontes de dados e selecionar essa opção, escolhendo o campo data emissão e retirando essas opções, mas cuidado pois pode tirar dados que você realmente deve considerar.
Verifica antes se esses dados fazem sentido para sua análise e depois de confirmado remova através do procedimento que informei acima ou remova via Oracle mesmo, pelo sql personalizado como informaram antes.
Abraço.
-
27. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Paulo Dantas May 16, 2017 5:48 AM (in response to Rafael Marques)Aproveitando, seleciona umas das respostas do Jan ou Luciano para que quando algum membro da comunidade for procurar pela mesma dúvida ache o seu caso com resposta e possa verificar se a sua solução serve para ele também.
Abraço.
-
28. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Luciano Vasconcelos May 16, 2017 7:41 AM (in response to Paulo Dantas)Qual o formato da cadeia de caracteres?
coloca um exemplo.
Em 16/05/2017 09:38, Paulo Dantas escreveu:
TABLEAU COMMUNITY
FILTRAR DATA NULA OU BRANCO DA FONTE E TRANSFORMAR CADEIA DE CARACTERES EM DATA
resposta de Paulo Dantas em #TUGSP - Visualize a discussão completa
-
29. Re: Filtrar data nula ou branco da fonte e transformar cadeia de caracteres em Data
Rafael Marques May 17, 2017 9:47 AM (in response to Paulo Dantas)Paulo, obrigado pelo retorno.
Esse trabalho já finalizamos.
Fiz o que você recomendou, marquei uma das respostas do Luciano como corretas para o post ficar com a solução do problema.