コード例 #1
0
        public void testIIF()
        {
            TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmdx);

            sqlparser.sqltext = "select \n" + "iif([Measures].[Orders Count]<>0, \n" + "    [Measures].[Unit Price BAD],\n" + "    0) on 1\n" + "from t";
            int i = sqlparser.parse();

            Assert.IsTrue(i == 0);

            TMdxSelect       select       = (TMdxSelect)sqlparser.sqlstatements.get(0);
            TMdxAxisNode     axisNode     = select.Axes[0];
            TMdxFunctionNode functionNode = (TMdxFunctionNode)axisNode.ExpNode;

            Assert.IsTrue(functionNode.Arguments.Count == 3);
            for (int j = 0; j < functionNode.Arguments.Count; j++)
            {
                TMdxExpNode expNode = functionNode.Arguments[j];
                // System.out.println(expNode.toString());
            }
        }
コード例 #2
0
        public void testCreateMember()
        {
            TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmdx);

            sqlparser.sqltext = "CREATE MEMBER CURRENTCUBE.Measures.[_Internet Current Quarter Sales Performance Status] \n" + "AS 'Case When IsEmpty(KpiValue(\"Internet Current Quarter Sales Performance\")) Then Null When KpiValue(\"Internet Current Quarter Sales Performance\") < 1 Then -1 When KpiValue(\"Internet Current Quarter Sales Performance\") >= 1 And KpiValue(\"Internet Current Quarter Sales Performance\") < 1.07 Then 0 Else 1 End', \n" + "ASSOCIATED_MEASURE_GROUP = 'Internet Sales';";
            int i = sqlparser.parse();

            Assert.IsTrue(i == 0);
            TMdxCreateMember   createMember   = (TMdxCreateMember)sqlparser.sqlstatements.get(0);
            TMdxWithMemberNode withMemberNode = createMember.Specification;

            string newQuery = "select " + TBaseType.getStringInsideLiteral(withMemberNode.ExprNode.ToString()) + " on 1 from t";

            sqlparser.sqltext = newQuery;
            i = sqlparser.parse();
            Assert.IsTrue(i == 0);
            //System.out.println(sqlparser.sqlstatements.get(0).sqlstatementtype);
            TMdxSelect   select   = (TMdxSelect)sqlparser.sqlstatements.get(0);
            TMdxAxisNode axisNode = select.Axes[0];
            TMdxCaseNode caseNode = (TMdxCaseNode)axisNode.ExpNode;

            Assert.IsTrue(caseNode.WhenList.Count == 3);
        }