Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
 
					
				
		
Aggregates:
LOAD RUN_ID,
EXECUTION_DATE
FROM
[..\Data\foo.tabdel]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);
LastRunId:
load max(run_id) resident Aggregates;
AggregatesForLastRun:
load * Resident Aggregates
where run_id >= LastRunId;
Any way to make this work?
 
					
				
		
 Now it's time to explain in words what you want to achieve...
 Now it's time to explain in words what you want to achieve... 
The condition:
where A.RUN_ID = select max(run_id) from Aggregates A2 group by A2.RUN_ID
returns every single value of run_id because you group it by itself. What did I get wrong?
 
					
				
		
so I've done the SQL query.
Can you translate it to qlikview, because I'm a beginner in QlikView?
Thanks,
Miguel
 
					
				
		
Here's my latest Script and still not working:
qualify *;
Raw:
LOAD RUN_ID,
EXECUTION_DATE
FROM
[..\Data\Raw.tabdel]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);
Aggregates:
LOAD RUN_ID,
EXECUTION_DATE
FROM
[..\Data\foo.tabdel]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);
MaxRunId:
inner keep (Aggregates)
load max([Aggregates.RUN_ID]) as MAX_RUN_ID
resident Aggregates
group by [Aggregates.RUN_ID];
let mypeek = peek('[MaxRunId.MAX_RUN_ID]',0,'MaxRunId');
MaxAggregates:
LOAD RUN_ID,
EXECUTION_DATE
FROM
[..\Data\MIB1-FOO-aggregates.tabdel]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq)
where RUN_ID = $(mypeek);
unqualify *;
 
					
				
		
Let me ask you the last time before I give up 
What is the difference in results between:
1) your SQL Query
select *
from Aggregates A
where A.RUN_ID = select max(run_id) from Aggregates A2 group by A2.RUN_ID
I have to add that your query doesn't work for me. This works:
select *
from Aggregates A
where A.RUN_ID in (select max(run_id) from Aggregates A2 group by A2.RUN_ID)
2) and this SQL
select *
from Aggregates A
The "where" condition as you have it now doesn't do anything.
3) and your code (first part):
Aggregates:
LOAD
RUN_ID,
EXECUTION_DATE
FROM [..\Data\foo.tabdel] (txt, codepage is 1252, embedded labels, delimiter is '\t', msq);
 
					
				
		
 ronaldocarrijo
		
			ronaldocarrijo
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		So I'm carrying twice to show it to u the original data and the data with Max, the more u will only use the second load
 
					
				
		
Problem solved!
Aggregates:
LOAD RUN_ID,
EXECUTION_DATE
FROM
[..\Data\foo.tabdel]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);
MaxRunId:
load max([RUN_ID]) as MAX_RUN_ID
resident Aggregates;
let mypeek = peek('MAX_RUN_ID',0,'MaxRunId');
LastRunAggregates:
LOAD RUN_ID,
EXECUTION_DATE
resident Aggregates
where RUN_ID = $(mypeek);
 
					
				
		
So maybe you should quit, if you don't understand that:
RUN_ID VALUE
1 a
1 b
2 c
2 d
So my final comment marked as an answer just retrieves the rows where RUN_ID = 2, and if there a ROW_ID called 12, and 12 is the biggest RUN_ID, my script only return rows with 12 as RUN_ID.
 
					
				
		
"So maybe you should quit..." - thank you for this suggestion, I'll certainly consider it 
Now, look again at my very first reply. To make it easier for you, I'm repeating it here:
Aggregates:
LOAD 
 RUN_ID, 
 EXECUTION_DATE
FROM [..\Data\foo.tabdel] (txt, codepage is 1252, embedded labels, delimiter is '\t', msq) ;
LastRunId:
inner keep (Aggregates)
load max(RUN_ID)  as RUN_ID
resident Aggregates;
DROP TABLE LastRunId;
Look carefully - it works the same way as your solution, only a little faster.  It even looks similar...  Logically you're doing exactly the same, except you're using variable and additional "last run", while I'm using "inner keep".
  Logically you're doing exactly the same, except you're using variable and additional "last run", while I'm using "inner keep".
 I try to learn from everyone.  You'll be fine if you do it too.
 I try to learn from everyone.  You'll be fine if you do it too.
 
					
				
		
I can make it even a little shorter by using inner join:
Aggregates:
LOAD 
 RUN_ID, 
 EXECUTION_DATE
FROM [..\Data\foo.tabdel] (txt, codepage is 1252, embedded labels, delimiter is '\t', msq) ;
inner join (Aggregates)
load max(RUN_ID)  as RUN_ID
resident Aggregates;
 
					
				
		
The problem is that your initial solution didn't work. Also your solution isn't faster because I need both tables.
Since my problem is solved now I'll not test your new proposed solutions.
Of course I like to learn with others but you're being a little arrogant here.
