声明:本文章仅用于SAP软件的应用与学习,不代表SAP公司。(注:文中所示截图来源SAP软件,相应著作权归SAP所有。)
对于在SPA系统前台查询表的数据字典(表、字段、主外建等)等信息时,我们经常使用SE11、SE16或SE16N等事物代码,简单方便且快捷。
在我看来,SPA系统在前台还是提供了很多使用的工具或技巧的,比如看似难记复杂的事物代码,其实使用起来还是挺方便的,而不用去一层一层地点击菜单或目录去找具体的事物。如你想创建一个订单,直接通过事物代码窗口输入ME21或ME21N去创建就行了。
今天给大家介绍下SE16N可以实现像在PL/SQL工具下通过SQL语句去查询数据库表的信息的功能(SE11/SE16功能类似,对于已经熟悉的老顾可以直接飘过)。
以EKPO(采购凭证行项目表)为例,我们介绍下如何通过SE16N查询我们要的信息,注意:SE16N/SE11/SE16只限于前台且单表数据字典、数据等查询,无法实现跨表关联查询。但对于单表可实现查询表、字段、数据条目数据、具体数据,并能按照指定的条件进行查询。
如图,我们直接点击
键执行结果如下:
注意:对于无特殊要求,不建议大家一次查询过多数据量,保持系统推荐的500条即可,若对数据量无要求,直接修改成20条以内(看看屏幕显示就知道了,多了还要点击下拉查看)。其次,如果查询的数据量较大且数据表本身数据量较大,执行起来也慢,还会占用系统过多资源。那么,这样的查询的作用可以实现查看表的样例数据,对表中的数据有个基本的认识,对数据管理、数据治理等梳理工作非常有帮助。
提示:如上图,可以看到 SQL查询语句,找到通过PL/SQL查询800生产库数据表的感觉了吧。
提示:如上图,假如我们只想查询关于工厂1710但不属于库存地点171C下的采购订单,我们可以通过点击
选择约束条件,下图是可以选择约束的条件类型:
我们来看一下具体的查询结果和具体SQL语句:
查询表的条目数或者在某种约束条件下表的条目数,直接点击
键:
以上内容仅供大家参考学习!
阿龙补充
通过以上的方式我们就可以知道SQL数据是如何取数的,如果你学过SQL的话很简单,通过表的关联,增删改查的方式就知道,但是通常数量量多的话我们执行se16n的时候就会比较卡,数据跑半天才出来,业务顾问进场会用2种方式来查询数据:
①SPA软件默认带的db02进行数据查询
系统中的事务码为DB02。进入后,直接从左侧菜单跳转到“SQL Command Editor”功能,即可出现SQL编辑器画面。如下图:
在编辑器中输出SQL代码,点击
即可以执行SQL语句,并在Result屏幕中输出结果数据,同样可以利用ALV的标准功能进行导出Excel等操作。
这样对于上述我们在se16n执行的条件,就可以放到这里进行sql的执行啦,如果对SQL不熟悉的情况下,这是比较简单的一种方式。
②通过自开发ZSQL的方式进行数据查询
对于很多生产机内部顾问基本上很多时候都是没用db02这种比较重要的权限,但是对于很多数据表需要join的时候怎么办呢,国外有个大神曾经写过一个ZSQL,来实现数据的查询。(如果想要代码的话,可以公众号回复ZSQL)
具体如果导入程序的话,里面附赠操作手册,可以按手册导入。se38执行界面后如下:
但是这个程序的SQL语法与我们DB02的写法又有不同,所以大家可以参考下,如下的一些简单写法,进行参照。
例如:查询8000工厂E空且不存在工艺路线的物料
select b~mtart b~BISMT c~maktx a~matnr a~werks a~BESKZ a~SOBSL
from marc as a
inner join mara as b on b~matnr eq a~matnr
inner join makt as c on c~matnr eq a~matnr
where a~PSTAT like '%D%'
and c~SPRAS = '1'
and a~LVORM <> 'X'
and a~BESKZ = 'E'
and a~SOBSL = ''
and a~werks = '1000'
and a~matnr not in ( select MATNR from mapl where mapl~WERKS = '1000' and PLNTY = 'N' and LOEKZ <> 'X' )