Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

concatenated monthly qvd load and date tag

Hi,

I have salesdata in separate qvd files, with same headers, so I do a concatenate load, which works :

LOAD * From Report_2010.001.qvd(qvd);

CONCATENATE LOAD * From Report_2010.002.qvd(qvd);

CONCATENATE LOAD * From Report_2010.003.qvd(qvd);

CONCATENATE LOAD * From Report_2010.004.qvd(qvd);

CONCATENATE LOAD * From Report_2010.005.qvd(qvd);

CONCATENATE LOAD * From Report_2010.006.qvd(qvd);

CONCATENATE LOAD * From Report_2010.007.qvd(qvd);

CONCATENATE LOAD * From Report_2010.008.qvd(qvd);

CONCATENATE LOAD * From Report_2010.009.qvd(qvd);

CONCATENATE LOAD * From Report_2010.010.qvd(qvd);

CONCATENATE LOAD * From Report_2010.011.qvd(qvd);

CONCATENATE LOAD * From Report_2010.002.qvd(qvd);

CONCATENATE LOAD * From Report_2011.001.qvd(qvd);

CONCATENATE LOAD * From Report_2011.002.qvd(qvd);

CONCATENATE LOAD * From Report_2011.003.qvd(qvd);

CONCATENATE LOAD * From Report_2011.004.qvd(qvd);

CONCATENATE LOAD * From Report_2011.005.qvd(qvd);

CONCATENATE LOAD * From Report_2011.006.qvd(qvd);

CONCATENATE LOAD * From Report_2011.007.qvd(qvd);

CONCATENATE LOAD * From Report_2011.008.qvd(qvd);

CONCATENATE LOAD * From Report_2011.009.qvd(qvd);

CONCATENATE LOAD * From Report_2011.010.qvd(qvd);

CONCATENATE LOAD * From Report_2011.011.qvd(qvd);

CONCATENATE LOAD * From Report_2011.002.qvd(qvd);

CONCATENATE LOAD * From Report_2012.001.qvd(qvd);

CONCATENATE LOAD * From Report_2012.002.qvd(qvd);

CONCATENATE LOAD * From Report_2012.003.qvd(qvd);

CONCATENATE LOAD * From Report_2012.004.qvd(qvd);

Only problem is, because the date is in the QVD header, it is not as a column in my data.

So basically, I load all qvd's but the data concatenates into one table without date information.

How could I fix this?? I would like to make an additional field which somehow creates the date for every row per qvd....

thanks

3 Replies
swuehl
MVP
MVP

You could try using filename() and some string functions:

LOAD *,makedate(mid(filename(),8,4),mid(filename(),13,3))  as FileDateMonthStart From Report_2010.001.qvd(qvd);

Not applicable
Author

Hi Swuehl

When i do the following :

LOAD * From Report_2010.001.qvd(qvd);

LOAD *,makedate(mid(filename(),8,4),mid(filename(),13,3))  as FileDateMonthStart From Report_2010.001.qvd(qvd);

Just to test the first Qvd, then it fetches my 15.000 lines, but the script doesn't stop...

swuehl
MVP
MVP

No, I haven't intended that you are loading the data twice, use only one load per qvd, and always with the additional new field.

LOAD *,makedate(mid(filename(),8,4),mid(filename(),13,3))  as FileDateMonthStart From Report_2010.001.qvd(qvd);

If you do load the data twice, once with an additional field, you will get a huge syn key table (that's probably why it doesn't stop.)

You could also consider replacing your multiple loads with one, like

LOAD *,makedate(mid(filename(),8,4),mid(filename(),13,3))  as FileDateMonthStart From Report_201*.qvd(qvd);

which will load all qvds that match the pattern.