abap - 具有不同域的字段的内部连接
问题描述
我有一个看起来有点像这样的查询:
SELECT a~matnr AS material,
b~aedat AS date,
SUM( c~ormng ) AS dummy
INTO TABLE @gt_dummy
FROM ekpo AS a
INNER JOIN ekko AS b
ON b~ebeln = a~ebeln
INNER JOIN lips AS c
ON c~vgbel = a~ebeln
AND c~vgpos = a~ebelp
INNER JOIN likp AS d
ON d~vbeln = c~vbeln
WHERE a~matnr IN @gr_dummy1
AND a~werks IN @gr_dummy2
GROUP BY a~matnr, b~aedat
ORDER BY a~matnr, b~aedat.
它不会起作用,因为LIPS-VGPOS
并且EKPO-EBELP
有不同的域,所以 '00010' inEBELP
将是 '000010' in VGPOS
. 另一种方法是只获取 EKPO 数据,使用转换退出函数,然后使用FOR ALL ENTRIES
查询来获取 LIPS 条目。然后,由于您不能使用并且SUM
我需要手动进行汇总。GROUP BY
FOR ALL ENTRIES
当然,做这一切的工作量并不大,但我很感兴趣是否有更快的方法来做到这一点,例如在单个查询中?谢谢。
编辑:我们在 7.40
解决方案
不幸的是,我在 ABAP 7.50 之前只看到了两种可能性:
FOR ALL ENTRIES
正如你所建议的- 直接在连接到 ABAP 软件的数据库上执行“本机”SQL。这可以使用
EXEC SQL
ADBC(类CL_SQL_STATEMENT
等)或 AMDP(如果您的数据库是 HANA)来完成。
推荐阅读
- python - python selenium不加载firefox扩展
- kubernetes - How to login to Kubernetes using service account?
- r - 犰狳中的合并功能
- r - 由于 0 方差而具有 NA 值的 cor 函数
- c# - 如何在运行时向我的类添加方法?
- webpack - 为 NativeScript Vue 使用手写笔?
- javascript - 使用 Parcel 从多个 JS 文件生成单个 JS 文件并保持框架路径默认值
- javascript - ESlint 和 typescript 集成问题
- html - 为什么 CSS Sticky 属性在传递时会清除其他元素
- php - 我想从这个包含主题和成绩的数组中提取成绩到一个数组中