【问题标题】:Is there a way in Acumatica's BQL to perform select distinct query on a single field?Acumatica 的 BQL 中有没有一种方法可以对单个字段执行选择不同的查询?
【发布时间】:2021-03-09 08:23:10
【问题描述】:

我想使用 BQL 从 SOLine(连接到 BCSyncDetails 表/DAC)获取仅包含不同 orderNbr 值的记录集。我试过使用 PXSelectJoinGroupBy 方法:

var solines = PXSelectJoinGroupBy<SOLine, 
              InnerJoin<BCSyncDetail, 
                  On<SOLine.noteID, Equal<BCSyncDetail.localID>>>,
              Aggregate<GroupBy<SOLine.orderNbr, Max<SOLine.orderNbr>>>>.Select(Base);

本质上就是这个 SQL 查询:

    SELECT  
    DISTINCT OrderNbr
    FROM     SOLine 
             INNER JOIN BCSyncDetail
                 ON SOLine.NoteID = BCSyncDetail.LocalID
                 AND SOLine.CompanyID = BCSyncDetail.CompanyID
    ORDER
    BY       OrderNbr

我写的不对吗?在任何地方都找不到很好的例子......

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    我的建议是像这样重写您的查询

    var solines = PXSelectJoinGroupBy>>, 聚合>>>.Select(Base).RowCast().ToList();

    因此您可以对本地对象使用 LINQ 查询。一旦你在可枚举中拥有它,它就会更快、更容易、更强大。上面的 RowCast 命令是关键,让我的生活更轻松。

    var distinctSOLines= solines.Select(x=>x.OrderNbr).Distinct();

    【讨论】:

    • 对 F-BQL 的友好推荐。阅读和写作要容易得多?
    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多