Qlik Community

Brasil

Announcements
June 28, 10AM ET: Qlik Nation and Qlik Community present: CyberSleuth REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
guiborlenghi
Contributor III
Contributor III

Gráfico com Dimensão em comum

Pessoal, estou com o seguinte problema:

Preciso montar um gráfico em que sua dimensão seja os dias do ano "DD/MM/YYYY".

Tenho em meus registros um controle de entrada e saída de veículos.

Ex.

ID VEICULOENTRADA (DT_ENT)SAIDA (DT_SAI)
129210/02/201712/02/2017
129310/02/201711/02/2017
129411/02/201713/02/2017

Quero montar um gráfico que me mostre quantas entradas e saídas tiveram em cada dia.

Seria representado da seguinte forma:

ex.png

Grato!

1 Solution

Accepted Solutions
eduardo_sommer
Partner
Partner

Bom dia, Guilherme

Você pode fazer algo como eu fiz neste script:

Tabela:

Load * inline [

IDVEICULO, ENTRADA, SAIDA

1292, 10/02/2017, 12/02/2017

1293, 10/02/2017, 11/02/2017

1294, 11/02/2017, 13/02/2017

];

NovaTabela:

Load IDVEICULO,

    if(IterNo() = 1, 'E', 'S') as Sentido,

    if(IterNo() = 1, ENTRADA, SAIDA) as Data

Resident Tabela

While (IterNo() <=2);

O seu gráfico, então, pode utilizar o campo Data como dimensão e as seguintes expressões:

=count({$<Sentido={'E'}>} IDVEICULO) para contar quantas entradas houve no dia e

=count({$<Sentido={'S'}>} IDVEICULO) para contar quantas saídas houve no dia

Entradas e Saídas.png

Espero ter ajudado

Eduardo

View solution in original post

8 Replies
TiagoCardoso
Creator II
Creator II

Boa tarde, Guilherme. Para datas do tipo inicio e fim, entrada e saída, etc... é interessante o uso do interval match, pois ele facilitará sua vida em relação às datas. Leia com bastante atenção!

Artigo do hic‌, muito bom.

IntervalMatch

Outro post com exemplo anexado para você se inspirar!

Interval Match Feature/Function

Espero que seja útil.

Att

Tiago Cardoso

Marcio_Campestrini
Specialist
Specialist

Guilherme, não entendi o problema.

O gráfico que você mostrou não foi feito no Qlikview?

Márcio Rodrigo Campestrini
nicolett_yuri

guiborlenghi
Contributor III
Contributor III
Author

Yuri, não consegui entender muito bem o seu exemplo.

Como ficaria o script no meu caso?

Meu LOAD principal é o seguinte:

LOAD "ID_AGENDAMENTO",

    PRODUTO,

    "DATA_ENTRADA",

    "DATA_SAIDA",

    "TEMPO_PERMANENCIA";

SQL SELECT * FROM minhaTabela;

eduardo_sommer
Partner
Partner

Bom dia, Guilherme

Você pode fazer algo como eu fiz neste script:

Tabela:

Load * inline [

IDVEICULO, ENTRADA, SAIDA

1292, 10/02/2017, 12/02/2017

1293, 10/02/2017, 11/02/2017

1294, 11/02/2017, 13/02/2017

];

NovaTabela:

Load IDVEICULO,

    if(IterNo() = 1, 'E', 'S') as Sentido,

    if(IterNo() = 1, ENTRADA, SAIDA) as Data

Resident Tabela

While (IterNo() <=2);

O seu gráfico, então, pode utilizar o campo Data como dimensão e as seguintes expressões:

=count({$<Sentido={'E'}>} IDVEICULO) para contar quantas entradas houve no dia e

=count({$<Sentido={'S'}>} IDVEICULO) para contar quantas saídas houve no dia

Entradas e Saídas.png

Espero ter ajudado

Eduardo

guiborlenghi
Contributor III
Contributor III
Author

Eduardo, seu modelo está exatamente do jeito que preciso, mas desculpe minha falta de entendimento, ainda continuo sem entender.

Minha dúvida no momento é o seguinte, na tabela que você chamou de "Tabela" para fazer o Load Inline, você digitou os campos que irão compor essa tabela, eu preciso que ele busque os registros do banco de dados.

Como ficaria?

Tabela:

Load Inline [

IDVEICULO, ENTRADA, SAIDA

"IDVEICULO", "ENTRADA", "SAIDA"]

from SQL_VIEW

Entendeu o que preciso?

Preciso que a "Tabela" tenha os registros do banco de dados conforme for atualizando, e não ter os valores já pré-definidos.

Desde já, obrigado a todos.

eduardo_sommer
Partner
Partner

Bom dia, Guilherme,

A ideia que eu passei foi de você poder dividir uma linha, de uma tabela, em diversas (usando a função IterNo()). Nesse caso, nós dividimos o registro de entrada e saída de um veículo, em dois registros (um de entrada e outro de saída).

O fato de eu ter criado uma carga "inline", foi para poder, rapidamente, te apresentar um exemplo e, principalmente, usando os dados que você tinha proposto na exposição do problema. Imagine aquela tabela vindo de um banco de dados. O resultado segue o mesmo.

Para buscar no banco de dados, você terá que fazer uma conexão com ele, podendo ser ODBC ou OLEDB. Uma vez que a tabela esteja na memória (resident) , segue a sintaxe que eu usei.

Espero ter ajudado e não confundido mais as coisas. Sugiro que você divida o problema em dois: a carga de dados a a partir de um banco de dados e, a divisão dos registros de entrada em diversos (que é o que tratamos neste post).

Qualquer coisa a mais que eu puder contribuir, conte comigo.

Abraço

Eduardo

guiborlenghi
Contributor III
Contributor III
Author

Eduardo,

Fiz a conexão com o banco de dados normalmente, dei um nome à tabela e utilizei na sintaxe que você demonstrou.

Consegui o exemplo, só estou precisando ajustas algumas condições para meus valores ficarem exatos.

Mas acredito que consegui.

Muito obrigado.