2017-02-15 69 views
0

在我的圖我有以下內部連接類鏈:Acumatica如何對待五個內部連接的是哪個親戚

public PXSelectJoin<APRegister, 
     InnerJoin<APPayment, On<APPayment.docType, Equal<APRegister.docType>>, 
      InnerJoin<CATran, On<CATran.origTranType, Equal<APRegister.docType>>, 
       InnerJoin<Vendor, On<Vendor.bAccountID, Equal<APRegister.vendorID>>, 
        InnerJoin<BAccount, On<BAccount.bAccountID, Equal<BAccount.bAccountID>>, 
         InnerJoin<VendorClass, On<VendorClass.vendorClassID, Equal<Vendor.vendorClassID>>>>>>>> ReleasedPayments; 

,我特別感興趣Acumatica框架如何「感覺」,也許表現約與內部連接親屬類。例如APRegister是APPayment的基本類,BAccount是Vendor的基本類。 Acumatica框架能夠正確處理它們嗎?我給這個問題,因爲提到的查詢造成我的處理器被超載,內存耗盡,然後崩潰w3wp進程。所以我有一個印象,那就是缺少一些東西

+1

回到Acumatica世界?很高興再次在這裏見到你! – Gabriel

+0

謝謝加百列! –

+0

我已經爲下一次峯會提名Acumatica MVP你:) – Gabriel

回答

0

我認爲只要連接正確就應該有效。我記得在嘗試多次使用同一個表在同一個表上進行連接時遇到問題。只要BQL的類名不同,它就可以工作。沒有測試它,你真的不知道肯定。

在參考兩個相同的表的聯接:Acumatica BQL Query with the same table more than once

+0

我給這個問題,因爲提到的查詢造成我的處理器超載,內存耗盡,然後崩潰w3wp進程。所以我得到一個缺失的東西 –

+0

運行profiler來查看sql的樣子。 – Brendan

+1

另外,我會在您最初的問題中提出有關處理峯值的評論,因爲它有助於支持您提出問題的原因。 – Brendan

1

我注意到你加入BAccount.bAccountID本身。您可能打算加入Vendor。由於BAccount只是以任何方式連接到自身而不是其他表,因此它可能像笛卡爾連接一樣工作,就像沒有指定連接條件一樣。如果您真的想由於某種原因將BAccount.bAccountID加入到自身中,您可能需要使用BAccountR或BAccount2--它們是BAccount的子類 - 或者自己創建子類。這應該在生成的SQL語句中使用不同的別名併產生預期的結果。

注意:您可能甚至不需要向Vendor提供BAccount連接。我發現默認情況下,BAccount中的選擇已經包含了一個供應商的內部聯接。雖然,子類BAccountR不。