Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá Pessoal, tenho uma questão que não consigo resolver e queria ajuda por favor.
Tenho um script bem grande em Sql Server, que extrai dados para montagem de um relatório, porém, preciso montar algo automático, ou seja, faço uma conexão sql no qlik, e ele com esse script extrai os dados, ai eu uso alguns campo para montar no dashboard.
Alguma dica?
Maciel
Maciel,
Tem que instanciar a variável com Let e não Set... a diferença é que Let executa a função e Set colocar o valor que você colocou dentro da variável...
Pelo que estou entendendo a questão deve estar no parâmetro data que você está passando. Muitas vezes o ODBC trabalha com formatos diferentes do DB. Tente colocar uma data maior, tipo 01/01/2014 até 01/01/2015... assim, não há como ter erro no parâmetro da data.
Lembre-se que se sua data no banco for no formato hh:mm:ss, é interessante passar 2015-05-10 00:00:00 até 2015-05-10 23:59:59, daí sim você estará fazendo uma seleção correta.
Outro detalhe é o retorno da Procedure, ou seja, tem que ter certeza de que a procedure retorna alguma coisa.
Execute o script pelo "debug" e pare onde ele passa o comando sql, verifica corretamente o formato de datas. Copie o comando que o qlik montou e execute direto no SQL e veja se retorna alguma coisa.
Abraços.
Rogerio, realmente não sei o que acontece.
Não conhecia o SET e LET, tentei algumas opções mas nenhuma da resultado.
O mais estranho é que eu vi um video onde se eu colocasse desta forma:
SET VL_DATAINICIAL = Today();
SET VL_DATAFINAL = Today();
SET vl_number = 5*5;
LET VL_DATAINICIAL = Today();
LET VL_DATAFINAL = Today();
LET vl_number = 5*5;
Me traria as variaveis criadas com os valores setados ai, mas no meu não traz nada.
Testei no debug, ele passa sem erros, e fica como coloco no scripit. Se eu rodo no sql, traz o dados normal.
O que acho estranho é seja qual for o formato de data que eu coloco no SET, o qlik da erro.
SET VL_DATAFINAL = '01-05-2015';// ou 01/05/2015 ou 2015/05/01
SET VL_DATAINICIAL = '01-05-2015'; // ou 01/05/2015 ou 2015/05/01
SQL
EXECUTE sp_vendasEstatisticas $(VL_DATAINICIAL),$(VL_DATAFINAL);
Tem um erro de digitação no meu script
LET Today = date(Today(),'YYYY-MM-DD');
LET Yesterday = date(Today(),'YYYY-MM-DD');
Faz um teste por favor, temos que ver como seu client de banco está formatado
executa só isso
SQL SELECT Getdate(); // Se for SQL Server
SQL SELECT SYSDATE from DUAL; // Se for Oracle
E posta aqui qual o formato retornado
Maciel,
Segue um exemplo que tenho aqui, tem um parâmetro a mais, mas a sintaxe é a mesma;
EXEC SALDOCONTABIL '$(vDataContabilInicio)', '$(vDataContabilFim)', '$(vFilial)';
Passe os parâmetros com aspas simples.
Abraços.
as datas devem ser cercadas por aspas simples
Acho que o problema deve ser meu script sql.
Eu fiz uma storeprocedure bem simples com dois parametros, chamei no qlik e funcionou.
Porem, com o que estou tentando usar, ele funciona no sql server, mas não vem nenhum dado para o qlik.
Não sei.
Agradeço a ajuda, mas não creio que haja solução. Não sei.
Tem solução, faz o teste que te pedi
SQL SELECT Getdate();
E posta aqui qual o formato retornado
2015-11-09 15:41:17.670
Este aqui Clever.