2017-02-11 8 views
1

이 SQL 쿼리를 AX 쿼리로 다시 작성하려고합니다.복잡한 AX 쿼리

여러 가지 방법으로 시도했지만 이해하지 못합니다.

저는 AX 쿼리가 완전히 새로 도입 된 것은 아니지만 복잡한 SQL 쿼리가 아닌 간단한 쿼리 만 사용해 본 경험이 있습니다.

SELECT * FROM ( SELECT DH.[RECID]       AS RECID_DIMENSIONHIERARCHY 
         ,DH.[NAME]       AS NAME__DIMENSIONHIERARCHY 
         ,DH.[DESCRIPTION]      AS DESC__DIMENSIONHIERARCHY 
         ,DH.[PARTITION]      AS PARTITION_DIMENSIONHIERARCHY 
         ,DL.[DIMENSIONATTRIBUTE]    AS RECID_DIMENSIONATTRIBUTE 
         ,DA.[NAME]       AS NAME_DIMENSIONATTRIBUTE   
         ,DN.[RECID]       AS RECID_DIMENSIONCONSTRAINTNODE 
         ,DNC.[RECID]       AS RECID_DIMENSIONCONSTRAINTNODECRITERIA 
         ,DNC.[RANGETO]      AS #Owner 
         ,DNCR.[WILDCARDSTRING]    AS #Agreement            
      FROM (SELECT * FROM [dbo].[DIMENSIONHIERARCHY]  
          WHERE [STRUCTURETYPE] = 1 AND [NAME] LIKE 'AG-OW%' 
       )                   AS DH 
     INNER JOIN [dbo].[DIMENSIONHIERARCHYLEVEL] AS DL 
        ON DH.[RECID]  = DL.[DIMENSIONHIERARCHY] 
       AND DH.[PARTITION]  = DL.[PARTITION]  
     INNER JOIN [dbo].[DIMENSIONATTRIBUTE] AS DA 
        ON DL.[DIMENSIONATTRIBUTE]  = DA.[RECID] 
       AND DL.[PARTITION]       = DA.[PARTITION]  
     INNER JOIN [dbo].[DIMENSIONCONSTRAINTNODE] AS DN 
        ON DL.[RECID]       = DN.[DIMENSIONHIERARCHYLEVEL] 
       AND DL.[PARTITION]       = DN.[PARTITION] 
     INNER JOIN [dbo].[DIMENSIONCONSTRAINTNODECRITERIA]   AS DNC 
        ON DN.[RECID]       = DNC.[DIMENSIONCONSTRAINTNODE] 
       AND DN.[PARTITION]       = DNC.[PARTITION] 
     INNER JOIN [dbo].[DIMENSIONCONSTRAINTNODECRITERIA] AS DNCR 
        ON DN.[PARENTCONSTRAINTNODE]   = DNCR.[DIMENSIONCONSTRAINTNODE] 
       AND DN.[PARTITION]       = DNCR.[PARTITION]       
       ) AS Sub 
+1

당신은 AOT에 실제 쿼리 개체를 만들거나 쿼리를 작성하는 X ++ 코드를 작성 싶은가? 두 경우 모두 Dynamics에서 쿼리를 작성하기 시작했으며 지금까지 시도한 것을 보여줄 수 있습니까? 또한 비즈니스 사례에 대한 간단한 설명을 제공 할 수 있다면 Dynamics에서이 쿼리를 다시 만드는 것이 최상의 솔루션이 아닐 수도 있습니다. –

답변

0

쿼리를 분석하여 작은 청크로 구현해야합니다. 그런 다음 모두 결합하여 원하는 결과를 얻으십시오.

X ++에서 쿼리를 만드는 방법에는 두 가지가 있습니다.

  1. 예를 들어 SELECT 문을 사용하여 쿼리를 만듭니다 :

    Select * from HcmWorker join * from DirPerson where DirPerson.RecId == HcmWorker.Person

    이 링크를 참조하십시오 Select statement syntax

  2. 하는 AOT 구조 쿼리를 만듭니다. 다음 링크에서보기를 할 수 있습니다 :

    Create query in AOT by using X++