کار با توابع prevmember و nextmember
قبل از اجرای کوئریهای زیر در ابتدا به ساختار سلسله مراتبی Customer دقت نمایید و ترتیب کشورها را در این ساختار بررسی نمایید.
کوئری زیر را اجرا نمایید :
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] }on columns, { [Customer].[Customer Geography].[Country].[Germany], [Customer].[Customer Geography].[Country].[Germany].prevmember }on rows From [Adventure Works]
این تابع برادر قبلی را بدست میآ ورد
حال کوئری زیر را اجرا نمایید :
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, { [Customer].[Customer Geography].[Country].[Germany], [Customer].[Customer Geography].[Country].[Germany].lag(1) } on rows From [Adventure Works]
در اینجا میزان فروش اینترنتی و همچنین میزان مالیات اینترنتی برای مشتریان آلمان و کشور قبلی بدست میآید.
با این تابع می توان برادر قبلی را با اعلام یک فاصله بدست آورد. مثلا 4 برادر قبلی یا .... را توسط این تابع بدست آورد .
کوئری زیر را اجرا نمایید :
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, { [Customer].[Customer Geography].[Country].[Germany], [Customer].[Customer Geography].[Country].[Germany].prevmember.prevmember } on rows From [Adventure Works]
در این حالت مشابه تابع (2)Lag عمل کرده ایم. حال با استفاده از تابع Nextmember می توانیم برادر بعدی را بدست بیاوریم.
کوئری زیر را اجرا کنید :
select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, { [Customer].[Customer Geography].[Country].[Germany], [Customer].[Customer Geography].[Country].[Germany].nextmember } on rows From [Adventure Works]
و همچنین در کوئری زیر برادر بعد از برادر بعدی را بدست آورده ایم
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, { [Customer].[Customer Geography].[Country].[Germany], [Customer].[Customer Geography].[Country].[Germany].nextmember.nextmember } on rows From [Adventure Works]
یک ترکیب از عملگر Range , NextMember در کوئری زیر نوشته شده است.
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, [Customer].[Customer Geography].[Country].[Germany] : [Customer].[Customer Geography].[Country].[Germany].nextmember.nextmember on rows From [Adventure Works]
کاربرد تابع Lead برای به دست آوردن برادر بعدی بر اساس عددی می باشد که به آن داده ایم .
در اینجا ترکیبی از رنج و به دست آوردن برادر برادر بعدی را داریم .
Select { [Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount] } on columns, [Customer].[Customer Geography].[Country].[Germany] : [Customer].[Customer Geography].[Country].[Germany].lead(2) on rows From [Adventure Works]
در قسمت بعدی تابع Order را بررسی میکنیم.