OPENEDGE(ODBC)在ID上没有重复的连接

时间:2017-10-11 05:58:15

标签: sql openedge

尝试在Object_ID

上查询3个没有重复的表格

如果无法做到这一点,请同时订购Object_ID,因此两者 Object_ID的副本本身也是如此,这对我来说也是有用的。但这并不适合我,因为我只能order by一个Object_ID,所以重复是他们自己。

表:

S_Anl

Ktr         Anl
4711        1234
4711        5678
4711        9000

AB_Erg

Anl    AB_Erg_Obj     Value
1234   c9d91f         1000
1234   696bfc         2000
1234   8c9915         3000
5678   141a65         4000

E_BP

Anl   E_BP_Obj      Value
1234  99f75ab       500
1234  720e573       100
9000  830614c       50
9000  958ac28       200

查询

SELECT B.AB_Erg_Obj, C.E_BP_Obj, A.Anl, B.Value, C.Value
FROM PUB.S_Anl AS A 
LEFT JOIN PUB.AB_Erg AS B ON A.Anl = B.Anl
LEFT JOIN PUB.E_BP AS C ON A.Anl = C.Anl
WHERE A.Ktr = '4711'
ORDER BY A.Anl, B.AB_Erg_Obj, C.E_BP_Obj
with (nolock)

预期结果

Anl  AB_Erg_Obj   E_BP_Obj   Value  Value
1234 c9d91f       99f75ab    1000   500
1234 696bfc       720e573    2000   100
1234 8c9915       NULL       3000   NULL
5678 141a65       NULL       4000   NULL
9000 830614c      830614c    NULL   50
9000 958ac28      958ac28    NULL   200

或者在他们之间订购AB_Erg_ObjE_BP_Obj。 这可能是其中之一吗?

//编辑:

我知道排序不会删除结果集中的重复项,但之后会更容易。

此外,数据在行级别上完全匹配并不是必需的,我只需要首先从E_BP和值AB_Erg中得到值的总和 - 因为不需要在行级别上进行精确匹配,在Object_ID-Level

上没有重复

0 个答案:

没有答案