如何使用select和delete语句获取数据?

2020-09-23 19:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我在选择查询时遇到了问题,我正在创建一个SD报表,在该报表中,我从4个表(VBAK,VBPA,VBKD,KONV)中获取数据。

VBAK字段是vbeln,auart,vkorg,vtweg,spart,vgrp,ernam,audat,knumv。

VBPA字段是parvw,kunnr。 (通过vbak- vbeln)

VBKD字段为bskd,bstdk。(通过vbak-vbeln)

KONV字段是kschl,knumv,kwert,kawrt。 (通过vbak-knumv)

我能够从VBAK VBPA VBKD成功获取数据,但是从KONV获取数据时遇到了问题。

从KONV获取数据的条件是:-

vbak-knumv中的knumv。

并且KSCHL应该等于'JOIG'或'JOCG'或'JOSG'。

如果满足上述条件,则应从KONV选择kawrt和kewrt。

当我在单个select语句中定义所有条件时,我正在使用delete语句查找查询,这需要大量时间来获取数据。所以,我正在尝试通过以下方式进行操作:-

<<<<从LT_VBAK中所有条目的KONV到表LT_KONV中选择kschl knumv kwert kawrt

其中KNUMV = LT_VBAK-KNUMV。

删除LT_VBAK,其中kschl NE'JOIG'或'JOCG'或'JOSG'。>>>>

但是我没有得到数据。

有人可以建议我做些更好的方法或修改吗!

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我在选择查询时遇到了问题,我正在创建一个SD报表,在该报表中,我从4个表(VBAK,VBPA,VBKD,KONV)中获取数据。

VBAK字段是vbeln,auart,vkorg,vtweg,spart,vgrp,ernam,audat,knumv。

VBPA字段是parvw,kunnr。 (通过vbak- vbeln)

VBKD字段为bskd,bstdk。(通过vbak-vbeln)

KONV字段是kschl,knumv,kwert,kawrt。 (通过vbak-knumv)

我能够从VBAK VBPA VBKD成功获取数据,但是从KONV获取数据时遇到了问题。

从KONV获取数据的条件是:-

vbak-knumv中的knumv。

并且KSCHL应该等于'JOIG'或'JOCG'或'JOSG'。

如果满足上述条件,则应从KONV选择kawrt和kewrt。

当我在单个select语句中定义所有条件时,我正在使用delete语句查找查询,这需要大量时间来获取数据。所以,我正在尝试通过以下方式进行操作:-

<<<<从LT_VBAK中所有条目的KONV到表LT_KONV中选择kschl knumv kwert kawrt

其中KNUMV = LT_VBAK-KNUMV。

删除LT_VBAK,其中kschl NE'JOIG'或'JOCG'或'JOSG'。>>>>

但是我没有得到数据。

有人可以建议我做些更好的方法或修改吗!

谢谢。

付费偷看设置
发送
6条回答
DafaDDDa
1楼 · 2020-09-23 19:37.采纳回答

嗨,阿钦,

主要问题是:您是不是从数据库(因此是从SELECT语句)获得数据,还是在使用DELETE语句处理内部表之后没有获得任何数据?

如果是后者,那么起初我建议将您的DELETE条件合并到SELECT语句中:

如果lt_vbak不初始化。
 选择kschl knumv kwert kawrt
 来自konv
 进入表lt_konv
 对于lt_vbak中的所有条目
 在哪里knumv = lt_vbak-knumv
   AND(kschl EQ'JOIG'
或kschl EQ'JOCG' 或kschl EQ'JOSG')。 万一。 "您还可以使用" IN"运算符:... AND kschl IN('JOIG','JOCG','JOSG')。

如果上述方法不起作用-则意味着您的算法中存在逻辑问题,并且数据不在DB中(根据您的逻辑)。

希望有帮助,

最诚挚的问候,

Marcin

Violet凡
2楼-- · 2020-09-23 19:32

嗨Marcin,

在您的帮助下,我的问题现在已解决。

谢谢。

阿钦。

哎,真难
3楼-- · 2020-09-23 19:40
  • KONV是否在您的系统中是集群表,是不使用JOIN的实际原因,还是性能问题?
  • 您实际删除的语法是什么,而不是您发布的语法? 我只能怀疑在某些地方删除了kschl NE'JOIG'或kschk NE'JOCG',等等。这总是正确的,请使用AND而不是OR。
葫芦娃快救爷爷
4楼-- · 2020-09-23 19:54

令我惊讶的是,还没有人提到这个问题:为什么只从KONV表中直接删除数据? KONM表(刻度)中也可能有数据,而没有。 通常不需要客户直接更新标准SAP表。

落灬小鱼
5楼-- · 2020-09-23 19:46

"如何将DELETE语句与SELECT语句合并"

该一般问题的一般答案是

在哪里删除(子查询)。

南山jay
6楼-- · 2020-09-23 19:36

Jelena,Horst,
实际上Achin提出的问题具有误导性-他不想删除数据库数据,他只是在组合SQL SELECT语句 由于性能原因,使用内部表DELETE操作。
这意味着DELETE仅适用于先前获取的内部表数据。 他之所以选择这种方式,是因为在SQL中使用相同的条件会导致运行时间更长。

一周热门 更多>