I'm trying to get faster extractions from SAP. In this case I'm loading BKPF (header) and BSEG (lines). I have some filters for BKPF in the WHERE clause, so I only get around 20% of the total number of records. After that, I only want to load the lines that correspond to the loaded headers.
With QlikView syntax I'd use the EXIST function, something like this:
WHERE Exists([Document Number_BELNR]);
But I want to filter directly on the extraction from SAP so I don't get all the records in my QVDs, but only the 20% that I really need. Any suggestions???
You can´t do joins or use subquerys with BSEG, because it´s a CLUSTER Table.
The solution is to create a loop like this : for each range of 200 document numbers in BKF table (already loaded in memory) do SELECT <fields> from BSEG where <document number field> = 0001 or <document number field> = 0002 and <document number field> = 0003 and <year field> = 2011.
Sorry but I can´t share the script code implement because I don´t have it. It´s on customer site.