Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
h_demarco
Contributor III
Contributor III

Left join matching criteria (date interval)

Dear gurus,

I am trying to left join 2 tables in order to add a column [Duração_parada] for each row in [Apontamentos], only when DATA_HORA_INI<=DATA_HORA_INI_Parada AND DATA_HORA_FIM_Parada <=DATA_HORA_FIM

First of all, I load a table with PARADA data:


  1. Parada: 
  2. LOAD 'Parada' As Tipo_ap, 
  3.   DATA_HORA_INI As DATA_HORA_INI_Parada,  
  4.      DATA_HORA_FIM As DATA_HORA_FIM_Parada,  
  5.      Num((DATA_HORA_FIM+Time('00:01:00')-DATA_HORA_INI)*24,'#######') As Duração_parada 
  6. FROM QVDs\VIEW_PCPAPPARADA.qvd (qvd);

Then it loads Apontamentos:

  1. Apontamentos: 
  2. LOAD 'Produção' As Tipo_ap, 
  3.      RECURSO,  
  4.      DATA_HORA_INI,  
  5.      DATA_HORA_FIM,  
  6.      Num((DATA_HORA_FIM+Time('00:01:00')-DATA_HORA_INI)*24,'#######') As Duração, 
  7. FROM QVDs\VIEW_PCPAPPRODUCAO.qvd (qvd); 

And then it tries to join:

  1. LEFT JOIN (Apontamentos)  
  2. LOAD Sum(Duração_parada) 
  3. Resident Parada 
  4. Where DATA_HORA_INI<=DATA_HORA_INI_Parada AND DATA_HORA_FIM_Parada <=DATA_HORA_FIM;

But it returns error:

  1. Field not found - <DATA_HORA_INI> 
  2. LEFT JOIN  
  3. LOAD Sum(Duração_parada) 
  4. Resident Parada 
  5. Where DATA_HORA_INI<=DATA_HORA_INI_Parada AND DATA_HORA_FIM_Parada <=DATA_HORA_FIM 

Any idea on how to achieve objective or handle error?

1 Solution

Accepted Solutions
h_demarco
Contributor III
Contributor III
Author

This error was solved using SQL. So Qlikview got fields ready from server.

View solution in original post

3 Replies
settu_periasamy
Master III
Master III

Hi,

You have already aliased the field DATA_HORA_INI as DATA_HORA_INI_Parada,

So, if you are using resident load of Parada, the field wont be found

Capture.JPG

h_demarco
Contributor III
Contributor III
Author

Settu, thanks for your help. Understood your point.

My intention is to refer APONTAMENTOS.DATA_HORA_INI. Considering APONTAMENTOS was previously loaded (before join command), how can I do that?

On SQL command, this line would be something like:

ON APONTAMENTOS.DATA_HORA_INI <= PARADA.DATA_HORA_INI_Parada AND APONTAMENTOS.DATA_HORA_FIM >= PARADA.DATA_HORA_FIM_Parada

Thank you.

Henrique

h_demarco
Contributor III
Contributor III
Author

This error was solved using SQL. So Qlikview got fields ready from server.