Filter konteksti Çoxlu cədvəllər (Filter context Many tables)

Filter konteksti sətir kontekstindən daha mürəkkəbdir. Əslində filter konteksti əlaqələr yolu ilə yayılır. Filter konteksti əlaqənin bir tərəfindən çox tərəfinə hərəkət edir. Lakin əlaqənin çox tərəfindən bir tərəfinə keçməz. Yəni hansısa bir data modelin çalışmasına səbəb olan da budur.

Əlaqənin bir tərəfinə məsələn məhsulun rənginə bir filter qoya bilərsiniz.Sonra məhsulun rəngindəki filter avtomatik olaraq satış cədvəlinə yayılır.

O, yalnız satış cədvəlində məhsul rənginə uyğun olan satışları göstərir. Bu tamamilə avtomatik bir şəkildə baş verir. Burada nəyisə məcbur etmək, RELATED yazmaq, ümumiyyətlə heç bir şey etmək lazım deyil.

Filter sadəcə bir tərəfdən bir çox tərəfə keçir və o çox tərəfdən bir tərəfə keçməyəcəkdir. Yəni biz əgər əlimizdə olan satış cədvəlini filterləsək, o, məhsul cədvəlinə çatmayacaq. Aşağıdakı şəklə diqqət edək:

Şəhər və sifarişləri ehtiva edən bir data modelimizin olduğunu düşünək. Sifarişlər cədvəlində bəzi faktlar vardır. Şəhərlər cədvəli isə şəhər, ölkə və qitə ilə yanaşı bəzi yerləri ehtiva edir.

Təsəvvür etdiyiniz kimi, şəhər cədvəlinə əsaslanan şəhərlər və sifarişlər arasında bir əlaqə vardır. Sağda yuxarıda Pivot Tabledə göründüyü kimi bir çox sütun var. Lakin biz filteri North Americaya qoymuş olduq.

North America Continent sütununda bir dəyərdir, Continent isə şəhərlər cədvəlinin sütunlarından biridir. Oxlarla göstərildiyi kimi, filter dilimləyicidən şəhərlər cədvəlinə keçir. Sonra şəhərlər cədvəlində yalnız bir sətri filterləyir.

Bəli, New-York – North Americadakı yeganə şəhərdir. Lakin unutmayaq ki, bu bir filter kontekstidir. Çünki dilimləyici bir filter konteksti yaradır. Növbədə şəhərlər cədvəlinə bir filter konteksti tətbiq edir və filter artıq şəhərlər cədvəlindədir. Lakin bu bir filter kontekstidir.

Filter konteksti olduğu üçün New-Yorku ehtiva edən sifarişlər cədvəlindəki tək sətri filterləyərək şəhərlər cədvəlindən – sifarişlər cədvəlinə keçəcəkdir. Bütün bunlar tamamilə avtomatik şəkildə baş verir. Təbii ki buradan nəticə alınaraq düzgün bir şəkildə Pivot Tabledə görünəcəkdir.

Şəkildən də göründüyü kimi nəticə 68.4 olmuşdur. Məsələ budur ki, filter bir tərəfdən – çox tərəfə avtomatik şəkildə hərəkət edir. Ssenarini dəyişərək bu dəfə Europe filter tətbiq edək və nəticə ilə maraqlanaq:

Nəticədə, Europe-dan gələn filter şəhərlər cədvəlinə çatır. Sonra isə bir sətri deyil birdən çox sətri filterləmiş olur. Lakin burada neçə sətrin filterlənməsi bizə maraqlı deyil. Çünki birə-çox olan əlaqənin hazırda bir tərəfindəyik.

Beləliklə filter şəhərlər cədvəlindən başlayacaqdır. Sonra əlaqənin bir tərəfində filterlənən sətrlərlə əlaqəli olan bütün sətirləri filterləyib cədvələ “hərəkət edəcəkdir”. Son nəticədə Green/Large/Red/Small kimi dəyərlərə bağlı olaraq dəyərlər Pivot Tabledə fərqli filterlərin ardından doğru yerə gedəcəkdir.

Hansı ki şəkildə oxlarla göstərilmişdir. Ən əsas məqam isə, bir daha qeyd edim ki, filterin əlaqənin bir tərəfindən çox tərəfinə getməsi ilə bağlıdır.

Filterlər və əlaqələr haqqında danışırıqsa, xatırlamağımız vacib olan şey DimProductCategory üzərinə bir filter yerləşdirdikdə əlaqənin tək tərəfində olmuş oluruq. Beləliklə filter Category-dən SubCategory-ə, sonra isə Producta keçəcəkdir:

Sonda isə Product cədvəlindən Sales cədvəlinə çatacaqdır. Yəni buradan bir filter sıçrayaraq Sales cədvəlinə çata bilər. Lakin burada iki tərəfli filterləməni aktivləşdirmədiyimiz müddətdə filter Customer cədvəlinə getməyəcəkdir.

Default image
Emin Məhərrəmli
Articles: 46

Leave a Reply