简体   繁体   中英

Count Working Days MDX

I would like to count the working days of a spesific time range and then find the Average Daily Dispatches.Currently the time range is at WHERE statement. I believe that I have include the date range in the 1st Member but I can't figure how to count the dates in a month range. Any suggestments?

WITH MEMBER [Measures].[Working Days] AS
COUNT(Date.[Working Date].&[1])--Doesn't work
MEMBER [Measures].[Average Daily Dispatches] AS
[Measures].[Total Dispatches]/[Measures].[Working Days]
SELECT [Measures].[Average Daily Dispatches] ON 0
FROM [cube]
WHERE (
[Date].[Month].&[2015-01-01T00:00:00]:[Date].[Month].&[2015-08-01T00:00:00]
);

Use the NonEmpty function to yield those working dates on which there was a dispatch. Then use COUNT on top of this.

WITH MEMBER [Measures].[Working Days] AS
COUNT
    (
    NonEmpty
            (
             [Date].[Working Date].MEMBERS, 
             [Measures].[Total Dispatches]
            )
    )

Some sort of alternative seems to exist using Exists/Existing (I think 1 is Monday in the AdvWrks cube!)

WITH 
  MEMBER [Measures].[MondayCnt] AS 
    Count
    (
      Exists
      (
        (EXISTING 
          [Date].[Calendar].MEMBERS)
       ,[Date].[Day of Week].[1]
      )
    ) 
  MEMBER [Measures].[Averge] AS 
    [Measures].[Internet Sales Amount] / [Measures].[MondayCnt] 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[MondayCnt]
   ,[Measures].[Averge]
  } ON 0
 ,
    [Date].[Calendar].[Month].&[2006]&[6]
  : 
    [Date].[Calendar].[Month].&[2007]&[6] ON 1
FROM [Adventure Works];

The above results in the following:

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM