Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi the community,
After reading a few discussion on the forum, I kind of found what I needed but not exactly.
I have 2 qvd files and one common variable between the 2 files.
I used the join function to obtain only one unique qvd.
What I want to do now is to populate the missing data from the second file.
See as below
Data_TEST:
LOAD
[Period ID],
REPORT_Code,
[TEST DOCUMENT NUMBER],
[TEST REFERENCE],
[TEST AMOUNT],
[TEST TYPE]
FROM
$(RootDir_FACT)monthlysummary_TEST*.qvd (qvd);
Outer Join (Data_TEST)
LOAD
[TEST REFERENCE],
[TEST CREATION DATE]
FROM
$(RootDir_FACT)dailyworkflow_TEST*.qvd (qvd);
STORE Data_TEST into $(RootDir_QLIKMART)TEST_volume_full_data.qvd;
As you can see, the field TEST REFERENCE is common to the 2 files.
I'm trying to get the REPORT_Code field filled up for the second file.
I used the following function, but PEEK only populate the empty cells using the above records.
// if(isnull(REPORT_Code) AND [TEST REFERENCE]=peek([TEST REFERENCE]), peek(REPORT_Code), REPORT_Code) as REPORT_Code
Furthermore, I'm trying to get to do all of this before I store both loaded data into one QVD file, so I won't have to create 2 files.
Your help would be greatly appreciated
What exactly is the problem you are facing right now? You might need to use the order by statement to make sure that the correct Report_Code is getting copied down.
Best,
Sunny
You may need to show a small sample data-set that represents the problem your having.
Then the community will be able to help you easier. Or even better upload a sample QVW if possible.
in this example, all the nulls are replaced using peek, it depends on the order by
z:
load f1, if(len(trim(f2))=0, null(), f2) as f2, rowno() as id inline [
f1,f2
1,a
1,
1,
1,b
1,
2,
2,a
2,
2,b
2,c
2,
2,
2,d
];
z2: NoConcatenate
LOAD id, f1, if(isnull(f2) and Peek(f1)=f1, Peek(f2), f2) as f2
Resident z
order by f1, f2 desc;
DROP Table z;
Thanks for your answers,
Besides the pbm regarding the peek function, I'm actually having trouble trouble executing what I want within the script before I store the two qvd into one. Let me re explain since I was not clear.
1) I load 2 differents QVD one after the other. Let's call them X and Y (see above)
2) The first QVD X contains my report_code but not the other. But they both have the test_reference field in common.
3) Before I store these 2 QVD into one QVD Z, I'm trying to use the peek function to populate the missing data within QVD Y.
4) When I reload QVD Y doesnt find the field report_code because those aren't joined yet.
5) I know I could do this in 2 steps, using the peek function in the unique QVD Z, but I need to do this in one step only. As new to qlikview, I'm having trouble understanding the concepts of "resident table", "temp table" etc
Sorry if I was not clear at the first time.
if you want to do an outer join between x and y, after that you could have some null report_code (from y qvd)
to replace null report_code you have to resident load the result of the outer join
2 steps; you can't outer join and replace null report_code at the same time
As new to qlikview, I'm having trouble understanding the concepts of "resident table", "temp table" etc
resident table is a table you have already loaded in memory; resident because when you read it you need a resident load (load * resident table)