【问题标题】:How to join same table twice using PXSelectJoinOrderBy如何使用 PXSelectJoinOrderBy 两次加入同一个表
【发布时间】:2016-08-21 06:27:13
【问题描述】:

我正在尝试使用 PXSelectJoinOrderBy 为以下 SQL 语句创建视图

SELECT * FROM INVENTORYITEM II
LEFT JOIN INItemXRef X1 ON II.InventoryID = X1.InventoryID AND 
X1.AlternateType = '0VPN' LEFT JOIN INItemXRef X2 ON II.InventoryID = X1.InventoryID AND
X2.AlternateType = '0CPN'

我已经使用以下语句加入 INItemXRef 表一次,它工作正常。

public PXSelectJoinOrderBy<InventoryItem, LeftJoin<INItemXRef, On<INItemXRef.inventoryID, Equal<InventoryItem.inventoryID>>>, OrderBy<Asc<InventoryItem.inventoryCD>>> FilteredItems;

如何使用不同的别名再次加入 INItemXRef?

【问题讨论】:

    标签: sql acumatica


    【解决方案1】:

    您可以通过创建 2 个继承类 INItemXRef 的类并在 bql 查询中使用它们来获得所需的结果。

    public PXSelectJoinOrderBy<InventoryItem,
        LeftJoin<VendorINItemXRef, 
            On<InventoryItem.inventoryID,
                Equal<VendorINItemXRef.inventoryID>,
                And<VendorINItemXRef.alternateType,
                    Equal<string_0VPN>>>,
        LeftJoin<CustomerINItemXRef,
            On<InventoryItem.inventoryID,
                Equal<CustomerINItemXRef.inventoryID>,
                And<CustomerINItemXRef.alternateType,
                    Equal<string_0CPN>>>>>,
        OrderBy<Asc<InventoryItem.inventoryCD>>> FilteredItems;
    
    public class VendorINItemXRef : INItemXRef
    {
        public new class inventoryID : IBqlField{}
        public new class alternateType : IBqlField{}
    }
    
    public class CustomerINItemXRef : INItemXRef
    {
        public new class inventoryID : IBqlField { }
        public new class alternateType : IBqlField { }
    }
    

    您还需要覆盖将用于比较的参数,以便系统可以绑定它们。

    有关其他信息,您还可以查看此问题: Acumatica BQL Query with the same table more than once.

    【讨论】:

    • +1 用于引用 StackOverflow 上的另一个 Acumatica 问题!还有其他方法可以达到相同的结果,例如使用 PXProjection 或 PXDBScalar,但这是迄今为止最简单的方法。谢谢塞缪尔!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    相关资源
    最近更新 更多