آموزش MDX Query - قسمت یازدهم – استفاده از توابع Lead و Lag
نویسنده: اردلان شاه قلی
تاریخ: ۱۳۹۲/۱۰/۰۶ ۱۶:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
از دو تابع Lead و Lag برای واکشی فرزندان، در همان سطح استفاده میشود. به عبارت دیگر این دو تابع میتوانند برادران قبل و بعد را پیدا کنند.
استفاده از تابع Lead() :
Select
{
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2006],
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2006].lead(2)
}on columns,
[Measures].[Reseller Sales Amount] on rows
From [Adventure Works] این تابع، دو سطح بعد از نیم فصل اول 2006 را در خروجی می آ ورد. به عبارت دیگر نیم فصل سوم 2006 را بازگشت میدهد .
خروجی به صورت زیر میباشد.
استفاده از تابع Lag() :
Select
{
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2006],
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2006].lag(-2)
} on columns,
[Measures].[Reseller Sales Amount] on rows
From [Adventure Works] استفاده از تابع Lead با پارامتر منفی مشابه تابع Lag با پارامتر مثبت میباشد.
Select
{
[Date].[Calendar].[Calendar Quarter].[Q3 CY 2006].lead(-2),
[Date].[Calendar].[Calendar Quarter].[Q3 CY 2006]
}on columns,
[Measures].[Reseller Sales Amount]on rows
From [Adventure Works] یا
Select
{
[Date].[Calendar].[Calendar Quarter].[Q3 CY 2006].lag(2),
[Date].[Calendar].[Calendar Quarter].[Q3 CY 2006]
}on columns,
[Measures].[Reseller Sales Amount] on rows
From [Adventure Works]
در کوئری زیر یک حالت ترکیبی بین عملگر : و تابع حرکت در فرزندان در سطحی مشابه را مشاهده میکنیم.
Select [Date].[Calendar].[Calendar Quarter].[Q1 CY 2006] : [Date].[Calendar].[Calendar Quarter].[Q1 CY 2006].lead(2) on columns, [Measures].[Reseller Sales Amount] on rows From [Adventure Works]
این نمودار به درک بهتر این مثال کمک خواهد کرد
خروجی به شکل زیر میباشد.