Bu konu, zaman serisi fonksiyonları ile filtre fonksiyonları arasındaki farkı ve filtre fonksiyonlarının nasıl uygulanacağını açıklar. Bu bilgiler hem çalışma kitapları hem de klasik kumanda tabloları için geçerlidir.
Zaman Serisi Fonksiyonları ve Filtre Fonksiyonları Karşılaştırması
Ago
ve Todate
zaman serisi fonksiyonları, year-ago, year-to-date
vb. hesaplamalar yapmak için metrik oluşturmanın basit bir yolunu sunar. Bu yöntem iş kullanıcı raporları için iyi çalışır. Ancak bu fonksiyonlar, performans açısından önemli bir maliyete sahip olan karmaşık sorgular oluşturur. Ayrıca bu fonksiyonlardan biri bir raporda her kullanıldığında, veritabanında daha da fazla kaynak kullanılarak ek bir alt sorgu oluşturulur.
Klasik kumanda tablolarında zaman serisi fonksiyonlarını kullanmak yerine, uygun zaman dilimini filtrelemek için Filter
fonksiyonu ile temel metrikleri kullanarak genellikle aynı sonucu elde edebilirsiniz. Bu yöntem, iş kullanıcısı raporları için fazla karmaşık olabilir ancak BT ekibi tarafından önceden tanımlanmış kumanda tablolarında iyi çalışır. Bu yöntemi kullanarak oluşturulan fiziksel SQL kodu çok daha basit ve etkili olur ve ek bir alt sorgu gerektirmez. Bu, SQL sorgusunun daha hızlı olacağı, veritabanında daha az kaynak kullanacağı ve genel veritabanı CPU kullanımı ve giriş/çıkış çağrılarının azalacağı anlamına gelir.
Aşağıdaki şekil, aynı raporda hem temel metriği hem de ay Ago
metriğini kullandığınızda oluşturulan fiziksel sorgunun bir örneğini gösterir. İki sorgu oluşturulur.
Aşağıdaki şekil, bunun yerine Filter
fonksiyonunu kullandığınızda oluşturulan SQL kodunu gösterir.
Bilgi İstemleri İçeren Bir Kumanda Tablosunda Filtre Fonksiyonlarını Uygulama
Çoğu uygulamada kumanda tablosu zaten kullanıcıların aradıkları ayı seçebilmeleri için bir bilgi istemi içerir. İlk adım, kullanıcının seçimine göre filtrelemeniz gereken zaman aralıklarını belirlemektir.
Bu örnekte, hesaplamayı çok daha kolaylaştıracağı için takvim boyutu bir Julian Period Number
sütununu içeriyor. Bu Julian Period Number
olmadan da mümkündür ancak seçili dönemi hesaplamak için çok daha karmaşık formüller gerektirir.
MonthSelected
) eklemek için Month
bilgi istemini değiştirin.
Julian Period Number
'ı almak ve başka bir değişkene (PeriodNumberSelected
) yerleştirmek için ayrı bir kumanda tablosu bilgi istemi oluşturuyoruz. Bu ikinci bilgi istemi son kullanıcıya gösterilmez, bunun yerine kumanda tablosunda gizlenir ve değer MonthSelected
değişkenine göre otomatik olarak hesaplanır.
Julian Period
bilgi istemi yolunu ekleyin.
Month
sütunundaki global filtreyi silin ve gerektiği şekilde Julian Period Number
'a göre sütun formülleri filtre fonksiyonlarını kullanın. Aşağıda bazı örnekler verilmiştir::
Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})
Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)
Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)
Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})
Parametreler İçeren Bir Çalışma Kitabında Filtre Fonksiyonlarını Uygulama
Aynı prensibi bir çalışma kitabında da uygulayabilirsiniz. Bilgi istemleri ve sunum değişkenleri, bir kumanda tablosu filtresi ve parametrelerle değiştirilir.
Üç parametre oluşturun: MonthSelected, PeriodNumberSelected ve YearSelected. Kumanda tablosu filtresindeki fonda sadece MonthSelected parametresi görüntülenir.
MonthSelected parametresi için olası değerler, tüm ayları seçen mantıksal bir SQL sorgusu temel alınarak tanımlanır.
PeriodNumberSelected ve YearSelected parametreleri için olası değerler doldurulmaz.
.jpg'' çiziminin açıklaması
Sadece başlangıç değeri MonthSelected değerine göre filtrelenen mantıksal bir sorguyla doldurulur.
.jpg'' çiziminin açıklaması