Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi i am trying incremental load.
Its working fine in case of insert & delete. but when the status of a callno is updated there will be multiple rows in database so two status will be highlted in QV. is there any possiblity to overcome this. i need the latest updated status of a call. please help me.
temp:
LOAD
Callno,
Call_date,
Name,
status,
lastmodified
FROM
[..\Documents\calldetails.xlsx]
(ooxml, embedded labels, table is Sheet1) where date(lastmodified , 'dd/mm/yy hh:mm:ss TT')>'4/5/2013 12:10:44 PM';
Concatenate
LOAD
Callno,
Call_date,
Name,
status,
lastmodified
FROM
test.qvd (qvd) where not Exists (Callno);
inner join
LOAD
Callno
FROM
[..\Documents\calldetails.xlsx] (ooxml , embedded labels , table is Sheet1);
store temp into test.qvd;
Maybe read your temp table in, then sort by lastmodified desc and add a ... where not exists() to read in only latest Callno records:
temp:
LOAD
Callno as CallnoTmp,
Call_date,
Name,
status,
lmodified
FROM
[calldetails.xlsx]
(ooxml, embedded labels, table is Sheet1) where date(lmodified , 'dd/mm/yy hh:mm:ss TT')> '04/05/2013 12:10:44 PM';
temp2:
NOCONCATENATE LOAD
CallnoTmp as Callno,
Call_date,
Name,
status,
lmodified
where not exists (Callno, CallnoTmp);
LOAD * Resident temp order by lmodified desc;
drop table temp;
// then following your concatenation
If you are reading from another source like a DB, you can sort the data by your DB and just add the preceding load to your DB load statement.
In addition, I think you need to use a DISTINCT LOAD with your last inner join:
LOAD DISTINCT
Callno
FROM
[..\Documents\calldetails.xlsx] (ooxml , embedded labels , table is Sheet1);
store temp into test.qvd;