جلسه دوازدهم – 05/09/93 Aggregate PeriodToDate

جلسه دوازدهم – 05/09/93

توجه: در دستورات MDX هریک از عبارات را تنها می­توان در یک بخش (Select یا From یا Where) مورد استفاده قرار داد.

Navigation Functions: مجموعه توابعی که برروی Members کار می کنند و با استفاده از آنها می توان در یک ساختار سلسله مراتبی بین اعضاء حرکت نمود.

مثال

  • ایران

    • آ.شرقی

    •  آ.غربی

    • سمنان

    • تهران

      • اسلامشهر

      • تهران

      • ورامین

      • رباط کریم

    • گیلان

    • مازندارن

  • عراق

  • امارات

Children: اسلامشهر، تهران و ....، رباط کریم

FirstChild: اسلامشهر

LastChild: رباط کریم

NextMember: گیلان

PrevMember: سمنان

 FirstSibling: آ.شرقی

LastSibling: مازندران

Parent: ایران

Lag(i): i امین عضو قبلی را نمایش می دهد. مقدار i منفی نیز می تواند باشد که در اینصورت به معنی عضوی بعدی است.

Lead(i): i امین عضو بعدی را نمایش می دهد.

MDX – Expression

  • دسته اول

    • Calculated member: افزودن یک عضو جدید به ابعاد

    • Calculated measure: افزودن یک مقدار محاسباتی به مکعب (پرکاربرد)

  • دسته دوم: Named Set: ایجاد یک مجموعه دلخواه از اعضاء (ایجاد محور گزارشگیری دلخواه) (پرکاربرد)

  • دسته سوم: Script command یا script assignment : ایجاد تغییرات در محاسبات داخلی مکعب

Calculated member: افزودن یک عضو جدید به ابعاد

مثال: اضافه کردن یک عضو به یک Dimension / اضافه کردن یک کشور به لیست کشورها : مثلا ایجاد آمریکای شمالی که نتیجه جمع دو منطقه است.

در محیط SSAS و در بخش Cube – Calculated Feilds باید:

  • نام برای فیلد محاسباتی درنظر گرفت

  • محل قرار گرفتن فیلد محاسباتی (measure یا dimension) را با تعیین parent hierarchy یا parent member مشخص کرد.

  • گزاره تولید کننده عضو  جدید را مشخص کرد (expression)

  • اگر از نوع measure باشد مقادیر additional properties را مشخص کرد.

آشنایی با توابع iif و isempty

iif(logical expression, true statement, false statement)

isempty() برای کنترل صفر بودن کاربرد دارد.

مثال: تعیین نرخ فروش Sales Amount/Order Quantity

  • 2005     300,000             %30

          • 1          %10

          • 2          %15

          • 3          %2

          • 4          %3

  • 2006     400,000             %40

  • 2007     300,000             %30

در بخش گزاره باید از عبارت زیر استفاده شود:

([measures].[sales amount], [order date].[calendar year].CurrentMember)

/

([measures].[sales amount], [order date].[calendar year].[All])

 

مثال: تعیین نرخ فروش Sales Amount/Order Quantity به ترتیب زیر

  • 2005     300,000             %30

          • 1          %30

          • 2          %50

          • 3          %5

          • 4          %15

  • 2006     400,000             %40

  • 2007     300,000             %30

  • در بخش گزاره باید از عبارت زیر استفاده شود:

 ([measures].[sales amount], [order date].[calendar year].CurrentMember)

/

([measures].[sales amount], [order date].[calendar year].CurrentMember.Parent)

نکته: برای شناسایی بالاترین لایه می توان از روش زیر استفاده کرد:

[order date].[calendar year].CurrentMember is [order date].[calendar year].[All]

توجه: برای تقسیم دو measure از دو FACT مختلف باید حتما Dimension مشترک داشته باشند.

 

آشنایی با تابع PeriodToDate(Level Expression, Member Expression)

عملکرد: مجموعه ای از اعضای هم جنس با عضو را بر می گرداند که این مجموعه از اولین عضو سطح فوق آغاز شده و به عضو مشخص ختم می شود.

توجة این تابع روی Hierarkey معنا دارد.

Level Expression: گزاره MDX ی که یک سطح از  یک سلسله مراتب را بر می گرداند.

Member Expression: گزاره MDX ی که یک عضو از یک سلسله مراتب را بر می گرداند.

مثال:

مجموعه ای از جنس روز از 01/01/93 تا 05/09/93 باز می گرداند

PeriodToDate(سال, 93/09/05)

مجموعه ای از جنس روز از 01/07/93 تا 05/09/93 باز می گرداند

PeriodToDate(فصل, 93/09/05)

مجموعه ای از جنس ماه از 01/93 تا 09/93 باز می گرداند

PeriodToDate(سال, 93/09)

 


آشنایی با تابع Aggregate(Set expression, Numeric expression)

این تابع به ازای اعضای مجموعه فوق، مقدار عددی فوق را جمع بندی می نماید.

 

Aggregate(

PeriodToDAte([Order date].[Calendar].[Calendar Year], [Order date].[Calendar].CurrentMemeber)

,

[measures].[sale amount]

)

 

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.