MDX查询中的日期值计算

时间:2017-07-28 07:52:56

标签: excel mdx olap cube

我想创建一个每天更新的动态查询。

所以要过滤今天的报告我使用

class Program
{
    public static Dictionary<string, Type> animals = new Dictionary<string, Type>();

    static void Main(string[] args)
    {
        Assembly assembly = Assembly.GetEntryAssembly();
        Type[] typ = assembly.GetTypes();
        foreach (Type t in typ)
        {
            // check if the type has attribute of Method type
            var attrData = t.GetTypeInfo().CustomAttributes.FirstOrDefault(x => x.AttributeType == typeof(Method));
            if(attrData==null || !attrData.NamedArguments.Any(x => string.Equals(x.MemberName, nameof(Method.Name)))) continue;

            animals.Add(attrData.NamedArguments[0].TypedValue.Value.ToString(), t);
        }
    }
}

4226来自:

[Report Date].[Report Date].&[4226]

38718只是从多维数据集中获取正确日期的任意数字。

编辑:

这是我当前的查询:

=DATEVALUE("28-07-2017")-38718 or =TODAY()-38718 (convert to number)

但它说声明中没有检测到任何列。我也尝试过不同的日期格式,任何想法?

1 个答案:

答案 0 :(得分:1)

遵循此主题的提示:

  

VBA Date as integer

我使用CDbl而不是Datevalue,这给了我想要的结果!

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")