olap4j.jar 生成mdx语句

public class QuerySentence /*extends TextCase*/{
    public static void main(String[] s){

        ParseTreeNode callNode = new CallNode(null,"iff",Syntax.Function,new IdentifierNode(new NameSegment("aad")));
        ParseTreeNode callNode1 = new CallNode(null,"iff",Syntax.Function,new IdentifierNode(new NameSegment("aadfasdfad")));
        CallNode callNode2 = new CallNode(
                null,
                ",",
                Syntax.Infix,
                callNode,
                callNode1);
//        new IdentifierNode(callNode,callNode1);


        WithMemberNode withMemberNode   = new WithMemberNode(null,
                new IdentifierNode(new NameSegment("paiming")),callNode2,null);

        ArrayList<ParseTreeNode> withMemberNodes = new ArrayList<ParseTreeNode>();
        withMemberNodes.add(withMemberNode);
        SelectNode query = new SelectNode(
                null,
                withMemberNodes,
                new ArrayList<AxisNode>(),
                null,
                null,
                new ArrayList<IdentifierNode>());
        query.setFrom(
                new IdentifierNode(
                        new NameSegment("Sales")));
        query.getAxisList().add(
                new AxisNode(
                        null,
                        false,
                        Axis.ROWS,
                        new ArrayList<IdentifierNode>(),
                        new CallNode(
                                null,
                                "{}",
                                Syntax.Braces,
                                new IdentifierNode(
                                        IdentifierNode.ofNames("Measures").getSegmentList()),
                                        new IdentifierNode(IdentifierNode.ofNames("Unit Sales").getSegmentList()),
                                new CallNode(null,"log",Syntax.Method,new IdentifierNode(new NameSegment("日期")),
                                        LiteralNode.createSymbol(null,"7")))));
//        AxisNode where = new AxisNode(
//                null,
//                false,
//                Axis.FILTER,
//                new ArrayList<IdentifierNode>(),
//                new CallNode(
//                        null,
//                        "{}",
//                        Syntax.Braces,
//                        new IdentifierNode(
//                                IdentifierNode.ofNames("Measures").getSegmentList()),
//                        new IdentifierNode(IdentifierNode.ofNames("Unit Sales").getSegmentList())));
//        query.getFilterAxis().setExpression(new CallNode(
//                null,
//                "{}",
//                Syntax.Braces,
//                new IdentifierNode(
//                        IdentifierNode.ofNames("Measures").getSegmentList()),
//                new IdentifierNode(IdentifierNode.ofNames("Unit Sales").getSegmentList())));
        CallNode where = new CallNode(null, "order", Syntax.Function, new IdentifierNode(
                IdentifierNode.ofNames("Measures").getSegmentList()),
                new IdentifierNode(IdentifierNode.ofNames("Unit Sales").getSegmentList()),
                LiteralNode.createSymbol(null, "asc"));
        query.getFilterAxis().setExpression(where);

        System.out.println(query.toString());
    }


}
1.selectNode
2.IdentifierNode
3.CallNode
4.NameSegment
5.LiteralNode
6.WithMemberNode
7.WithSetNode
 
olap4j官网 文档
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值