簡體   English   中英

Microsoft Dynamics AX SQL JOIN轉換

[英]Microsoft Dynamics AX SQL JOIN Translation

我想知道Axapta如何翻譯其SQL語句並遇到此問題: 如何在x-select-statement中聯接如何轉換為t-sql

這是該站點上給出的第一個示例。

在X ++中加入:

select AccountNum from custTable
    join TaxGroupId from custGroup
    where custGroup.CustGroup == custTable.CustGroup;

在T-SQL中交叉加入:

SELECT T1.ACCOUNTNUM, T1.RECID, T2.TAXGROUPID, T2.RECID
FROM CUSTTABLE T1 CROSS JOIN CUSTGROUP T2
WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID=?))
  AND (((T2.PARTITION=?) AND (T2.DATAAREAID=?)) 
   AND (T2.CUSTGROUP=T1.CUSTGROUP))

我現在想知道問號在此聲明中的含義。 ? 由於語法錯誤而被標記為錯誤。

WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID=?))是什么意思?

這些字段是Dynamics AX中數據隔離實現的一部分。 更多信息在這里

字段T1.PARTITION與分區有關:

分區通過使用AOS應用於數據查詢的特殊處理來划分和隔離安裝的業務數據。 當查詢表中存在名為Partition的系統字段時,將在將查詢發送到基礎Microsoft SQL Server數據庫之前立即進行特殊處理。

字段T1.DATAAREAID與公司或法人實體有關:

每個分區至少包含一個公司或法人實體。 法人實體僅出現在一個分區中。 創建法人實體時,系統會將其分配給當前分區。 法人實體永遠不能移到另一個分區。 但是,其數據可以從分區導出,然后導入到另一個分區中的另一家公司。

最終,問號將由分區和公司的實際值代替,具體取決於調用語句的上下文。

問號是占位符,使SQL Server能夠為查詢值經常更改的查詢計算執行計划。

Microsoft Dynamics AX可以在查詢中傳遞參數(占位符)或文字(實際值)。

•參數允許Microsoft Dynamics AX和數據庫服務器在搜索值更改時重用查詢。 它們是高頻查詢的首選。

•文字使數據庫服務器可以針對特定信息優化查詢。 這為該條信息提供了最佳查詢,但是數據庫服務器必須對每個執行的查詢執行優化。 文字可用於長時間運行的查詢,例如復雜的聯接。

開發人員可以通過在代碼中指定參數來覆蓋文字的默認使用,或者管理員可以在服務器配置實用程序中覆蓋文字的使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM