【发布时间】:2020-09-02 05:17:39
【问题描述】:
我想在职位层次结构中获取特定经理下的员工,并使用以下 sql 代码来实现它。 我是 X++ 的新手,我想将以下 sql 查询转换为 X++ 查询,但是我编写的代码没有编译并显示连接非法的错误消息, 需要你的帮助。
这是我要转换成x++代码的sql代码。
select top 1 name from DIRPARTYTABLE
inner join HcmWorker ON HcmWorker.PERSON = DIRPARTYTABLE.RECID
AND HcmWorker.RECID =
(select top 1 worker from HCMPOSITIONWORKERASSIGNMENT
INNER JOIN HCMPOSITION ON HCMPOSITIONWORKERASSIGNMENT.POSITION = HCMPOSITION.RECID
AND HCMPOSITION.RECID =
(select TOP 1 ParentPosition from hcmPositionHierarchy
INNER JOIN hcmPositionHierarchyType on hcmPositionHierarchy.PositionHierarchyType = hcmPositionHierarchyType.RECID AND hcmPositionHierarchyType.HierarchyType = 0
where hcmPositionHierarchy.Position =
(select top 1 POSITION from HCMPOSITIONWORKERASSIGNMENT
INNER JOIN HCMPOSITION ON HCMPOSITIONWORKERASSIGNMENT.POSITION = HCMPOSITION.RECID
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM AND HCMPOSITIONWORKERASSIGNMENT.VALIDTO
AND HCMPOSITIONWORKERASSIGNMENT.WORKER =
(select TOP 1 WORKER from hcmEmployment where hcmEmployment.RECID = 5637152077)))
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM AND HCMPOSITIONWORKERASSIGNMENT.VALIDTO);
以下是我编写的 x++ 代码。
HcmPositionWorkerAssignment HCMPOSITIONWORKERASSIGNMENT;
DirPartyTable DIRPARTYTABLE;
HcmPosition HCMPOSITION;
HcmWorker HcmWorker;
HcmPositionHierarchy hcmPositionHierarchy;
HcmPositionHierarchyType hcmPositionHierarchyType;
HcmEmployment hcmEmployment;
select firstonly name from DIRPARTYTABLE
join HcmWorker where HcmWorker.PERSON == DIRPARTYTABLE.RECID
&& HcmWorker.RECID ==
(select firstOnly worker from HCMPOSITIONWORKERASSIGNMENT
JOIN HCMPOSITION where HCMPOSITIONWORKERASSIGNMENT.POSITION == HCMPOSITION.RECID
&& HCMPOSITION.RECID ==
(select firstOnly ParentPosition from hcmPositionHierarchy
JOIN hcmPositionHierarchyType where hcmPositionHierarchy.PositionHierarchyType = hcmPositionHierarchyType.RECID && hcmPositionHierarchyType.HierarchyType == 0
where hcmPositionHierarchy.Position ==
(select firstOnly POSITION from HCMPOSITIONWORKERASSIGNMENT
JOIN HCMPOSITION where HCMPOSITIONWORKERASSIGNMENT.POSITION == HCMPOSITION.RECID
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM && HCMPOSITIONWORKERASSIGNMENT.VALIDTO
&& HCMPOSITIONWORKERASSIGNMENT.WORKER ==
(select firstOnly WORKER from hcmEmployment where hcmEmployment.RECID == 12345678)))
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM && HCMPOSITIONWORKERASSIGNMENT.VALIDTO);
【问题讨论】:
-
您可以通过edit提出问题来帮助我们回答问题,并且 1) 添加自然语言解释查询试图实现的内容,以及 2) 描述 x++ 的问题是什么(确实它无法编译,是否会产生错误的结果,您尝试了哪些变体,...)。
-
我编辑了帖子,先生。
标签: sql x++ dynamics-ax-2012