小小飞鹰

     中国人缺少的是步骤,太急。练太极!
随笔 - 144, 文章 - 0, 评论 - 96, 阅读 - 16万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

dynamics Ax 2009 实现 union 效果

Posted on   小小飞鹰  阅读(518)  评论(0编辑  收藏  举报

Ax中多表关联仅提供Inner Join/Outer Join/Exist join/Not Exist join,而么有union,可以通过Query来实现.

例如 Sql:

select ItemType,GoodsName from table1 where TransDate between g_DateB and g_DateE
union
select ItemType,GoodsName from table2 where TransDate between g_DateB and g_DateE

1 实现[ from table1 ]
    qbd = query.addDataSource(tableNum(table1));
2 实现[ select ItemType,GoodsName ]
    qbd.addSelectionField(fieldnum(table1,ItemType));
    qbd.addSelectionField(fieldnum(table1,GoodsName));
3 实现[ where TransDate between g_DateB and g_DateE ]
  qbd.addRange(fieldnum(table1,TransDate)).value(strfmt("%1..%2", g_DateB,g_DateE));
4 实现[ union ]
    query.queryType(QueryType::Union);
  
代码:
   Query query;
    QueryRun qr;
    QueryBuildDataSource qbd;
    QueryBuildDataSource qbd2;
    Table1 newTable;

    qbd = query.addDataSource(tableNum(table1));
    qbd.addSelectionField(fieldnum(table1,ItemType));
    qbd.addSelectionField(fieldnum(table1,GoodsName));
    qbd.addRange(fieldnum(table1,TransDate)).value(strfmt("%1..%2", g_DateB,g_DateE));

    qbd2 = query.addDataSource(tablenum(table2));
    qbd2.addSelectionField(fieldnum(table2,ItemType));
    qbd2.addSelectionField(fieldnum(table2,GoodsName));
    qbd2.addRange(fieldnum(table2,TransDate)).value(strfmt("%1..%2", g_DateB,g_DateE));


    qbd2.addRange(fieldnum(table2,RecId)).
            value(strfmt("((%1 > %2) || (%3 > %4) || (%5 > %6))",
            fieldstr(table2,Qty),queryValue(0),
            fieldstr(table2,Weight),queryValue(0),
            fieldstr(table2,Volume),queryValue(0)));// OR Condition

 

    query.queryType(QueryType::Union);
    qr = new QueryRun(query);
    while(qr.next())
    {
     newTable = qr.get(tableNum(table1));
     //do something...
  }

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示