Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
marciomgm
Creator
Creator

Extração de dados Oracle exemplo Pedido e Pedido-Itens

Estou com uma grande dificuldade de entender como funciona a extração de dados Oracle para Qlikview.

Exemplo:

Tabela: PEDIDOS

Contem o cabeçalho de pedido.

Tabela:PEDIDO-ITENS

Contém o cabeçalho de itens do pedido.

Eu gostaria de uma solução para extrair os dados da tabela PEDIDO-ITENS limitando por período.

Com a tabela PEDIDOS funciona perfeito.

Veja como estou fazendo o meu script:

PEDIDOS:

LOAD

  NUMEROPEDIDO

  Date(DATAPEDIDO, 'DD/MM/YYYY') AS DATAPEDIDO,

  VALORPEDIDO;

SQL SELECT

  NUMEROPEDIDO

  DATAPEDIDO

  VALORPEDIDO

FROM PEDIDOS WHERE DATAPEDIDO >= '01/02/2017' ;

PEDIDO-ITENS:

LOAD

  NUMEROPEDIDO

  CODIGO,

  QTD,

  VALORITEM;

SQL SELECT

  NUMEROPEDIDO

  CODIGO,

  QTD,

  VALORITEM;

FROM PEDIDOS P

INNER JOIN PEDIDO-ITENS I ON (I.NUMEROPEDIDO = P.NUMEROPEDIDO AND P.DATAPEDIDO >= '01/02/2017' );

O grande problema é que o Qlikview parece não entender essa condição do periodo na PEDIDO-ITENS, e com isso está extraindo TODOS os registros da tabela PEDIDO-ITENS.

Eu queria extrair apenas os registros do periodo informado.

Como faço?

Labels (4)
1 Solution

Accepted Solutions
marciomgm
Creator
Creator
Author

Funcionou dessa forma:

WHERE DATAPEDIDO >= TO_DATE('00-00-0000','DD-MM-YYYY');

View solution in original post

11 Replies
Marcio_Campestrini
Specialist
Specialist

Bom dia Márcio

Não uso o SQL ANSI normalmente, então não consigo te responder o motivo de não estar funcionando.

O que posso é sugerir a solução para o SQL Oracle

SELECTi.*
FROMPedidos P,
PEDIDO-ITENS i

Where   i.numeropedido = p.numeropedido

andP.DATAPEDIDO >= '01/02/2017'
Márcio Rodrigo Campestrini
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Marcio,

para o Oracle normalmente eu uso o seguinte where no SQL

where "PLO_DATA" > To_DATE('31/12/2013', 'dd/mm/yyyy')

furtado@farolbi.com.br
marciomgm
Creator
Creator
Author

O grande problema é que o Qlikview não entende o WHERE

parece que ele está ignorando o WHERE

paulovendruscol
Creator
Creator

Marcio,

Já verificou o formato do campo data? Verifica se o formato data não está em YYYY/MM/DD

Obs: O seu script da tabela [PEDIDO-ITENS] está com pequenos erros:

[PEDIDO-ITENS]:

LOAD

  NUMEROPEDIDO,

  CODIGO,

  QTD,

  VALORITEM;

SQL SELECT

  NUMEROPEDIDO

  CODIGO,

  QTD,

  VALORITEM

FROM PEDIDOS P

INNER JOIN PEDIDO-ITENS I ON (I.NUMEROPEDIDO = P.NUMEROPEDIDO AND P.DATAPEDIDO >= '01/02/2017' );

paulovendruscol
Creator
Creator

Marcio,

Conforme o seu script o mesmo será executado no seu SGBD, ou seja, o QlikView enviará o script (SQL) para o seu SGBD executar.

Clever_Anjos
Employee
Employee

O QlikView não trata o "WHERE", essa query é entregue ao SGBD que retorna linhas, provavelmente você está passando a data em um formato que o BANCO não entende

talvez seu select esteja mal formado, acredito que o correto seja

SELECT

  NUMEROPEDIDO

  CODIGO,

  QTD,

  VALORITEM;

FROM PEDIDOS P

INNER JOIN PEDIDO-ITENS I ON (I.NUMEROPEDIDO = P.NUMEROPEDIDO)

WHERE P.DATAPEDIDO >= to_DATE('01/02/2017' ,'DD/MM/YYYY')

jmcandido
Contributor III
Contributor III

Bom Dia Marcio, no Oracle depende um pouco no NLS_LANG configurado, muitas vezes ao passar parâmetros de data passa assim

SELECT

  NUMEROPEDIDO

  CODIGO,

  QTD,

  VALORITEM

FROM PEDIDOS P

INNER JOIN PEDIDO-ITENS I

ON (I.NUMEROPEDIDO = P.NUMEROPEDIDO

AND P.DATAPEDIDO >= '01-Feb-2017'

Veja o detalhe do Mês.

Marcio_Campestrini
Specialist
Specialist

Bom dia Marcio

O seu problema foi resolvido? Se sim, marque as respostas úteis/corretas para fechar o tópico.

Obrigado

Márcio Rodrigo Campestrini
Clever_Anjos
Employee
Employee

Já achou uma solução? Se sim e alguma das resposta te ajudou, marque-a como "Correta" para fechar o tópico.

Como obter ajuda? Leia antes de postar