Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Delete from QVD before Load?

Hi,

I have a QVD with a column "DateLoad".

Before saving datas in my QVD, i want to delete all records where Year(DateLoad) = Current Year.

Is it possible?

Thanx for your help.

8 Replies
luciancotea
Specialist
Specialist

TempTable:

NOCONCATENATE LOAD * RESIDENT Table1

WHERE Year(DateLoad) <> Year(Today());

DROP TABLE Table1;

RENAME TABLE TempTable to Table1;

datanibbler
Champion
Champion

Hi,

for processing, you load your qvd into memory anyway, right? And after the processing is all done, you store it as a qvd again.

So just squeeze in a RESIDENT LOAD to exclude those records (using a WHERE clause) and then proceed.

HTH

Best regards,

DataNibbler

Not applicable
Author

This code don't delete datas ?

Could you explain me more? I don't know where i must put the Load * from QVD\file.qvd.

luciancotea
Specialist
Specialist

There is no "DELETE" command in QlikView. If you load directly from QVD, why don't you:

MyTable:

LOAD *

FROM file.qvd (qvd)

WHERE Year(DateLoad) <> Year(Today());

Not applicable
Author

Ok,

I think that i found the solution.

First table, i load datas from xls files.

Second table, i load datas from QVD

Third table (temp table), noconcatenate resident first table

Fourth table, i store the temp table in my QVD this delete records

Fifth, i store the First table in the QVD file.

Is it true?

luciancotea
Specialist
Specialist

The logic of your script is a different problem. I just told you how to "delete" rows from a table.

Not applicable
Author

I don't understand the solution...

I explain again.

I load datas from 2 XLS files. I add a column named LoadDate with value TODAY().

Before saving this datas into the QVD files, i want to delete all records from QVD where Year(LoadDateQVD) = Year(Today()).

Exemple :

Xls1:

Load FieldTest,

Today() as LoadDate

From Path\ExcelFile1.xls

Where FieldTest<>'002';

Xls2:

Load FieldTest2,

Today() as LoadDate

From Path\ExcelFile2.xls;

Outer Join

Load *

Resident Xls1;

Drop Table Xls1;

//DELETE FROM QVD Where Year(LoadDate) into QVD = Year(Today())

//Store Xls2 into QVD.

Could you help?

Not applicable
Author

I think that i found the solution...

I've added this script at the top of my script :

DeleteRecords:

Load *

From QVD\File.qvd (qvd)

Where Year(LoadDate)<>Year(Today());


Store DeleteRecords into QVD\File.QVD (qvd);

Drop table DeleteRecords;

Then i load from XLS files and i store result into File.QVD...

Are you OK with this script?