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

Porque uma Cláusula SQL não funciona no qlikview

Boa tarde.

Apenas me tirem uma dúvida...

Usando uma ferramenta de gerenciamento de dados (dbForge studio), aplico o comando abaixo, e o resultado vem perfeitamente, mas quando executo dentro do Qlikview, o comando ignora a parte >= '01/01/2015'...

A pergunta é, porque dentro do qlikview, o código está ignorando esta parte da data, e trazendo as datas inferiores a citada?

O que tenho que fazer no código, para que ele entenda esta condição....?

Código sendo usado:

SELECT

       CB.ID_DOCUMENTO,

       CB.NR_DOCUMENTO,

       CBT.VL_PAGO,

       CB.ID_CONTA,

       CB.DT_CONCILIADO,

       CB.CS_TRANSFERENCIA,

       CBT.CS_TIPO_DOCUMENTO,

       CBT.ID_DOCUMENTO

  FROM SGT.CAIXAS_BANCOS CB,

            SGT.CAIXAS_BANCOS_TITULOS CBT

  WHERE CB.ID_DOCUMENTO = CBT.ID_DOCUMENTO

         AND CB.DT_CONCILIADO >= '01/01/2015'

         AND CB.CS_TRANSFERENCIA = 'S';

26 Replies
Anonymous
Not applicable
Author

Clever, usamos oracle 11g

Clever_Anjos
Employee
Employee

Tente TO_DATE('01/01/2015','DD/MM/YYYY')

Anonymous
Not applicable
Author

Também não adiantou... Os dados continuaram vindo da mesma forma.

Estranho demais né?

lucianosv
Specialist
Specialist

Bom dia.

Você já tentou colocar Date(DT_CONCILIACAO) para transformar o Timestamp?

fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, veja se assim funciona, alterando o seu SQL dentro do script QlikView.

TO_DATE(CB.DT_CONCILIADO,'DD/MM/YYYY') >= '01/01/2015'


Don't worry, be Qlik.

Tonial.

Don't Worry, be Qlik.
Clever_Anjos
Employee
Employee

Roda esse comando por favor

select column_name, data_type

from all_tab_columns

where table_name = ‘SGT.CAIXAS_BANCOS_TITULOS’

and column_name = 'DT_CONCILIADO'

Anonymous
Not applicable
Author

Tonial, bom dia.

Fiz assim, veja se está correto?

SELECT

       CB.ID_DOCUMENTO AS ID_DOCUMENTO_D,

       CB.NR_DOCUMENTO,

       CB.DT_EMISSAO,

       CB.CS_DOCUMENTO,

       CB.VL_CONTA,

       CBT.VL_PAGO AS VL_DOCUMENTO,

       CB.ID_CONTA,

       CB.DT_CONCILIADO,

       CB.CS_TRANSFERENCIA,

       CB.CS_CONCILIADO,

       CB.NR_TRANSFERENCIA,

       CBT.CS_TIPO_DOCUMENTO,

       CBT.ID_DOCUMENTO    AS    CBT_ID_DOCUMENTO,

       CBT.ID_CAIXA_BANCO_TITULO

  FROM SGT.CAIXAS_BANCOS CB,

       SGT.CAIXAS_BANCOS_TITULOS CBT

  WHERE CB.ID_DOCUMENTO = CBT.ID_DOCUMENTO

    AND CB.DT_CONCILIADO IS NOT NULL

    AND TO_DATE(CB.DT_CONCILIADO, 'DD/MM/YYYY') >= '01/01/2015'

    AND CB.CS_TRANSFERENCIA = 'S'

    AND CBT.CS_TIPO_DOCUMENTO = 'C';

Mas quando acrescentei esta linha, AND TO_DATE(CB.DT_CONCILIADO, 'DD/MM/YYYY') >= '01/01/2015', não trouxe resultado algum, o resultado foi vazio.

Tirando a linha, volta mostrar resultados...

Anonymous
Not applicable
Author

Dentro do dbForge, ou seja, diretamente dentro do banco, via qlik a única diferença que fiz fiz foi adicionar SQL antes do SELECT, mas também não trouxe nada....

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Bom dia.

O SQL antes do SELECT não se faz necessário. Se tiver ou não, roda.

A questão deve mesmo estar no formato da data. Ja tive este problema.

Se você colocar um LOAD e no load colocar um where? 

Sei que não seria tao performático quanto o where no banco, mas não sei o tempo que leva lendo a tabela....as vezes é rápida e não sacrifica tanto....

LOAD

         *

    Where year(DT_CONCILIADO_ >= 2015 ;

SELECT

       CB.ID_DOCUMENTO AS ID_DOCUMENTO_D,

       CB.NR_DOCUMENTO,

       CB.DT_EMISSAO,

       CB.CS_DOCUMENTO,

       CB.VL_CONTA,

       CBT.VL_PAGO AS VL_DOCUMENTO,

       CB.ID_CONTA,

       CB.DT_CONCILIADO,

       CB.CS_TRANSFERENCIA,

       CB.CS_CONCILIADO,

       CB.NR_TRANSFERENCIA,

       CBT.CS_TIPO_DOCUMENTO,

       CBT.ID_DOCUMENTO    AS    CBT_ID_DOCUMENTO,

       CBT.ID_CAIXA_BANCO_TITULO

  FROM SGT.CAIXAS_BANCOS CB,

       SGT.CAIXAS_BANCOS_TITULOS CBT

  WHERE CB.ID_DOCUMENTO = CBT.ID_DOCUMENTO

    AND CB.DT_CONCILIADO IS NOT NULL

    AND CB.CS_TRANSFERENCIA = 'S'

    AND CBT.CS_TIPO_DOCUMENTO = 'C';

furtado@farolbi.com.br
Anonymous
Not applicable
Author

Desculpe a demora Clever,

Consulta:

select column_name, data_type

from all_tab_columns

where TABLE_NAME = 'CAIXAS_BANCOS'

AND COLUMN_NAME = 'DT_CONCILIADO';

Resultado:

DT_CONCILIADO  -  DATE