Elimizde çalışanlara ait sicil numaraları olduğunu düşünelim. Var saydığımız durumda da çalışanların farklı durumlardan kaynaklı birden fazla sicil numaraları olabileceği varsayalım. Qlik Sense’te raporlamamızı yaparken de kullanıcıların güncel sicil bilgilerini görmek istediğimiz bir özelleşme olsun. Bu durumda elimizdeki veriyi nasıl düzenleyebileceğimizi hep birlikte inceleyelim. Örnek datalarla oluşturulabilecek script örneği aşağıdaki gibi olacaktır;
Temp1:
LOAD
"TCNo",
"Personel_Sicil",
"AdıSoyadı",
"PersonelNo",
"Personel alanı tanımı",
"Personel Numarası",
"Personel numarası tanımı",
"Hesaplama1",
"Hesaplama2"
FROM [lib://AttachedFiles/denemesürümü.xlsx] (ooxml, embedded labels, table is Sheet1);
NOCONCATENATE
Temp2:
LOAD
"TCNo", IF("TCNo"=Previous("TCNo"),0,1) as "Kontrol",
"Personel_Sicil",
"AdıSoyadı",
"PersonelNo",
"Personel alanı tanımı",
"Personel Numarası",
"Personel numarası tanımı",
"Hesaplama1",
"Hesaplama2"
RESIDENT Temp1 ORDER BY TCNo,Personel_Sicil DESC;
DROP TABLE Temp1;
NOCONCATENATE
Temp3:
LOAD
*
RESIDENT Temp2 WHERE Kontrol=1;
DROP TABLE Temp2;
Temp1 tablosunda öncelikle ham verimizi yükledik. Temp2 tablosuna geldiğimizde kişilerin unique bilgisi olarak TCNo alanını baz alarak bir sıralama yapıyoruz ve bu sıralamayı yaparken if koşulu içinde yazdığımız IF(“TCNo”=Previous(“TCNo”),0,1) hesaplaması yapılan sıralamaya istinaden bir önceki değeriyle aynı TCNo değerini içeriyorsa 0 yazacak. Eğer yapılan sıralama sonucu her kaydın bir önceki değeri aynı TCNo değerine sahip değilse de 1 değerini yazacak. Bu formül sonucunda da “Kontrol” isminde yeni bir alan yaratıyoruz.
Temp3 tablosuna geldiğimizde de “Kontrol” değerinin 1 döndüğü kayıtları çekerek istediğimiz veriyi filtrelemiş oluyoruz.
Scriptte tablolarla uğraştığımız sonuçta yarattığımız Temp1, Temp2 ve Temp3 tabloları arasında bir ilişki kurmaya çalışmadığımız için ve sadece Temp3 tablosunun output’una ihtiyacımız olduğu için işlemleri tamamladıkça Temp1 ve Temp2 tablolarını kodun içinde “drop table” komutuyla düşürüyoruz.