首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接EKPO-EBELP和G/L帐户

连接EKPO-EBELP和G/L帐户
EN

Stack Overflow用户
提问于 2019-11-07 12:17:26
回答 2查看 1.9K关注 0票数 1

我想知道哪个订单位置(EBELP从EKPO在SAP MM)出现在哪个G/L帐户(HKONT在BSEG在SAP FI与koart = 'S')。

我正在处理一个redshift数据库上的SQL查询,该数据库的表是从SAP复制的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-07 14:28:41

好吧,几天后我找到了答案,一列一列地浏览了论坛和SAP表格.由于我主要感兴趣的是连接订单立场到付款/信用证帐户,我能够找到他们在EKKN是直接连接到EKPO。对于一些ebelp,有多个sakto,这就是为什么我们需要"vproz“才能将EKPO划分成不同的sakto。

所有这些都让我把我的问题从连接EKPO和BSEG转移到连接EKPO-EBELP和G/L帐户。(带滤波器到= 'S')也在中.

代码语言:javascript
复制
SELECT ebeln, ebelp, netwr, sakto, vproz, vproz * netwr / 100 AS sakto_netwr
FROM ekpo
LEFT JOIN (
          SELECT
          mandt
          ,ebeln
          ,ebelp
          ,sakto
          ,SUM(vproz) as vproz
          FROM ekkn
          GROUP BY mandt, ebeln, ebelp, sakto
          )
          ekkn ON ekkn.mandt = ekpo.mandt AND ekkn.ebeln = ekpo.ebeln AND ekkn.ebelp = ekpo.ebelp
票数 0
EN

Stack Overflow用户

发布于 2019-11-08 04:17:31

,它具有从SAP复制的表。

如果您复制了ALL表,则可以以下列方式改进查询。

有一个很棒的表EKBE,它是订单文档历史,类似于EKPO中的所有订单数据。它既包含订单编号,也包含相应的材料文档编号。

代码语言:javascript
复制
EKBE:          MSEG:

BELNR   ->     MBLNR

GJAHR   ->     MJAHR

BUZEI   ->     ZEILE

这完全消除了在可怕的查询中使用MSEG/MKPF的需要。可能的选择可以如下:

代码语言:javascript
复制
SELECT ekbe.ebeln, ekbe.ebelp, bseg.hkont
  FROM ekbe
  LEFT JOIN bkpf ON bkpf.mandt = ekbe.mandt AND left(bkpf.awkey,10) = ekbe.belnr AND right(left(bkpf.awkey,14),4) = ekbe.gjahr AND bkpf.awtyp = 'RMRP'
  LEFT JOIN bseg ON bseg.mandt = bkpf.mandt AND bseg.bukrs = bkpf.bukrs AND bseg.gjahr = bkpf.gjahr AND bseg.belnr = bkpf.belnr

请注意,字段AWTYP也应该在JOIN中指定,因为任何会计文档在一年中都可以有许多不同类型的材料(AWKEY = <object number> + <year>)。

另外,我也不欣赏您在原始选择中加入表的顺序。通常,源数据表(在我们的例子中是EKPO,因为我们正在为每个采购订单搜索帐户)首先被放入,所有其他的连接到她。但这是一个品味的问题,也是一个红移语法的问题,你知道的更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58748624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档