4

我在 AX 2009 中遇到了一个问题,我不得不承认我基本上一无所知。

我想使用如下所示的表构建一个视图(是否基于 AOT 查询;但据我了解,使用 AOT 查询比严格使用视图可以做更多的事情):

id    status    date
1     IN        10/10/2011
1     OUT       11/10/2011
2     OUT       12/10/2011
3     IN        13/10/2011
4     IN        14/10/2011
4     OUT       15/10/2011

理想情况下,该视图应如下所示:

id   IN_Date      OUT_Date  
1    10/10/2011   11/10/2011
2    *NULL*       12/10/2011
3    13/10/2011   *NULL*
4    14/10/2011   15/10/2011

在严格的 SQL 或什至使用 Microsoft Access 中,这是一项微不足道的任务,但我无法在 AX 2009 中找到执行此操作的方法,因为AS视图字段中没有“”选项。我不想使用显示方法,因为我希望从 AX 外部访问视图。任何提示将不胜感激!

4

1 回答 1

3

您想对表进行完全外部联接(与自身联接)。

这在 X++ 中或作为查询不支持joinMode,但可以使用两个中间视图与外部连接和联合来模拟。

视图 1:

select id, date as dateIn from table as table1 
    outer join date as dateOut from table as table2
    where table2.id == table1.id and
          table1.status == Status::In and
          table2.status == Status::Out

视图 2:

select id, date as dateOut from table as table1 
    outer join date as dateIn from table as table2
    where table2.id == table1.id and
          table1.status == Status::Out and
          table2.status == Status::In

视图 3:

select id, dateIn, dateOut from view1 
union 
select id, dateIn, dateOut from view2

以上或多或少是SQL,可以转成AX查询和视图。

这个答案中给出了一种方法。

于 2012-07-04T09:51:54.207 回答