dbTalk Databases Forums  

YTD Calculation

microsoft.public.sqlserver.olap microsoft.public.sqlserver.olap


Discuss YTD Calculation in the microsoft.public.sqlserver.olap forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Patrice Lamarche
 
Posts: n/a

Default YTD Calculation - 04-02-2004 , 10:50 AM






Hello Everyone,

I'm currently working with YTD calculation and i got some logic problem
....

with member [Measures].[Unit Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])'
member [Measures].[Store Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])'

SELECT crossjoin({[Time].[1998],[Time].[1997]},{[Measures].[Unit Sales YTD],
[Measures].[Store Sales YTD]}) on columns, non empty
[Customers].[Country].members on rows from [Sales]

But in the case I only have Jav-Feb-March of data in 1998.. I would like to
have the same period for the 1997 YTD

with member [Measures].[Unit Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])'
member [Measures].[Store Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])'
member [Time].[Last Year] AS 'ParallelPeriod([Time].[Year],1,
[Time].[1998])'

SELECT crossjoin({[Time].[1998],[Time].[Last Year] },{[Measures].[Unit Sales
YTD], [Measures].[Store Sales YTD]}) on columns, non empty
[Customers].[Country].members on rows from [Sales]

Why Time.Last Year return nothing. IF i replace it by
ParallelPeriod([Time].[Year],1, [Time].[1998]) i got data ...

Thanks

Best Regards,

Patrice



Reply With Quote
  #2  
Old   
Chris Webb
 
Posts: n/a

Default RE: YTD Calculation - 04-02-2004 , 11:16 AM






Hi Patrice

Not sure exactly what you want here, but it looks like a solve order issue to me. Does the following do what you want

with
member [Measures].[Unit Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])', solve_order=
member [Measures].[Store Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])', solve_order=
member [Time].[Last Year] AS 'ParallelPeriod([Time].[Year],1
[Time].[1998])', solve_order=

SELECT crossjoin({[Time].[1998],[Time].[Last Year] },{[Measures].[Unit Sales YTD], [Measures].[Store Sales YTD]}) on columns, non empt
[Customers].[Country].members on rows from [Sales

Regards

Chri

----- Patrice Lamarche wrote: ----

Hello Everyone

I'm currently working with YTD calculation and i got some logic proble
...



But in the case I only have Jav-Feb-March of data in 1998.. I would like t
have the same period for the 1997 YT
with member [Measures].[Unit Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])
member [Measures].[Store Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])

SELECT crossjoin({[Time].[1998],[Time].[1997]},{[Measures].[Unit Sales YTD]
[Measures].[Store Sales YTD]}) on columns, non empt
[Customers].[Country].members on rows from [Sales
with member [Measures].[Unit Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])
member [Measures].[Store Sales YTD] A
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])
member [Time].[Last Year] AS 'ParallelPeriod([Time].[Year],1
[Time].[1998])

SELECT crossjoin({[Time].[1998],[Time].[Last Year] },{[Measures].[Unit Sale
YTD], [Measures].[Store Sales YTD]}) on columns, non empt
[Customers].[Country].members on rows from [Sales

Why Time.Last Year return nothing. IF i replace it b
ParallelPeriod([Time].[Year],1, [Time].[1998]) i got data ..

Thank

Best Regards

Patric




Reply With Quote
  #3  
Old   
Patrice Lamarche
 
Posts: n/a

Default Re: YTD Calculation - 04-02-2004 , 11:26 AM



Thanks it work

Best Regards,

Patrice
"Chris Webb" <OnlyForPostingToNewsgroups (AT) hotmail (DOT) com> wrote

Quote:
Hi Patrice,

Not sure exactly what you want here, but it looks like a solve order issue
to me. Does the following do what you want?

with
member [Measures].[Unit Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])', solve_order=1
member [Measures].[Store Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])', solve_order=1
member [Time].[Last Year] AS 'ParallelPeriod([Time].[Year],1,
[Time].[1998])', solve_order=2

SELECT crossjoin({[Time].[1998],[Time].[Last Year] },{[Measures].[Unit
Sales YTD], [Measures].[Store Sales YTD]}) on columns, non empty
[Customers].[Country].members on rows from [Sales]

Regards,

Chris

----- Patrice Lamarche wrote: -----

Hello Everyone,

I'm currently working with YTD calculation and i got some logic
problem
....



But in the case I only have Jav-Feb-March of data in 1998.. I would
like to
have the same period for the 1997 YTD
with member [Measures].[Unit Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])'
member [Measures].[Store Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])'

SELECT crossjoin({[Time].[1998],[Time].[1997]},{[Measures].[Unit
Sales YTD],
[Measures].[Store Sales YTD]}) on columns, non empty
[Customers].[Country].members on rows from [Sales]
with member [Measures].[Unit Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Unit Sales])'
member [Measures].[Store Sales YTD] AS
'SUM(YTD([Time].CurrentMember),[Measures].[Store Sales])'
member [Time].[Last Year] AS 'ParallelPeriod([Time].[Year],1,
[Time].[1998])'

SELECT crossjoin({[Time].[1998],[Time].[Last
Year] },{[Measures].[Unit Sales
YTD], [Measures].[Store Sales YTD]}) on columns, non empty
[Customers].[Country].members on rows from [Sales]

Why Time.Last Year return nothing. IF i replace it by
ParallelPeriod([Time].[Year],1, [Time].[1998]) i got data ...

Thanks

Best Regards,

Patrice






Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.