Cognos 8 Report Studio – TOP N fonksiyonu

Posted by | Temmuz 26, 2010 | Serbest Kürsü | No Comments

Raporlarımızda (Özellikle grafiksel) bazı alanları (Dimension) baz alarak istatiksel veri alanlarını (Fact) sıralarız. Ama baz alınan bu alanlarının çokluğu karmaşıklığa yol açar ve yöneticiler genellikle şu ifadeyi kullanır;

– Bana NÜFUS açısından ilk  5 İL i getirsin yeter…

Bu gibi bir durumda raporumuzu nasıl tasarlıyacağız ona değinmek istiyorum. Bu örneği Cognos 8.3 ve İlişkisel (Relational) bir modelde yaptığımızı belirteyim.

Öncelikle rapor sorgumuza (qAltVeri) bir DataItem (SIRALAMA) ekleyerek Expression Definition ekranında şu ifadeyi yazalım;

Rank([NUFUS] desc for report)

Böylece NÜFUS alanına göre azalan önce veri sonuç kümesini sıralayarak yanına eklediğimiz sütunda tekil (UNIQUE) ve sıralı artan (AUTO INCREMENT) bir alan elde etmiş oluruz.

Bu sorgu bizim temel sorgumuz olacak ve bu sorguyu kullanarak yeni sorgular üretebiliriz. Amacımız olan ilk 5 kayıt için yeni bir sorgu (2. sorgu) oluşturup filtreye de şu ifadeyi yazarız;

[qAltVeri].[SIRALAMA]<=5

Görüldüğü gibi TOP 5 listemizi oluşturmuş olduk. Sorgumuzda IL bazında qAltveri sorgusunu kullanmıştık ve IL alanımızın Expression Definition değeri de aşağıdaki gibiydi;

[qAltVeri].[IL_ADI]

Peki ya ilk dışında kalmayanları da toplu olarak, “DİĞER İLLER” olarak istenirse?

3. bir sorgu oluşturup filtreye de;

[qAltVeri].[SIRALAMA]<=5

yazmamız yeterli olacak mıdır ? HAYIR!!!!

Her İL‘ i aynı saymak için Expression Definition değeri de aynı olmalıdır ki İL DataItem‘ ının Expression Definition değerine “DİĞER İLLER” yazarak bu işten yırtabiliriz. Sonra da 2. ve 3. sorgularımızı UNION yaparak 4. sorgumuz elde edebiliriz.

İster List, ister Chart, isterseniz de Crosstab…. Bu 4. sorguyu kullanarak istediğiniz gibi raporunuzu oluşturabilirsiniz.

Not : “DİĞER İLLER” i raporda en alt sırada göstermek isteyeceksinizdir. Bunun için de 2. ve 3. sorgulara yeni bir DataItem ekleyerek Expression Definition değerlerine “0″ ve “1″ ekleyerek rapor tipinize göre SORTING özelliğini ASC/DESC yaparak bunu sağlayabilirsiniz…

Leave a comment

Your email address will not be published. Required fields are marked.