Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Script para gerar consulta Sql

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

38 Replies
rogerioqv
Creator II
Creator II

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.

Not applicable
Author

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.

Not applicable
Author

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);

Clever_Anjos
Employee
Employee

Tem um erro de digitação no meu script

LET Today = date(Today(),'YYYY-MM-DD');

LET Yesterday = date(Today(),'YYYY-MM-DD');

Clever_Anjos
Employee
Employee

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

rogerioqv
Creator II
Creator II

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.

Clever_Anjos
Employee
Employee

as datas devem ser cercadas por aspas simples

Not applicable
Author

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.

Clever_Anjos
Employee
Employee

Tem solução, faz o teste que te pedi


SQL SELECT Getdate();

E posta aqui qual o formato retornado

Not applicable
Author

2015-11-09 15:41:17.670

Este aqui Clever.