2020-08-31 11:21发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家,
该如何合并两个内部表(it_tab_h1和it_tab_k1)的数据?
伊万,你好
基于CLIENT,FMSNO和DOCTY列,您可以连接这两个表。 联接可以基于表数据而保留或保留。
请参考下面的示例SQL:
开始 it_tab_h =选择100个客户端, " a"为FMSNO, 'AA'为DOCTY, 'x1'为FMS_FCR, 'y1'为DOCNO_1 从假人 全联盟 选择100个客户, " a"为FMSNO, 'AA'为DOCTY, " x2"作为FMS_FCR, " y2"为DOCNO_1 从假人 ; it_tab_h1 =选择 客户, FMSNO, DOCTY, STRING_AGG(CASE WHEN(FMS_FCR!=``)THEN FMS_FCR ELSE NULL END,'/')AS FMS_FCR, STRING_AGG(CASE WHEN(DOCNO_1!='')THEN DOCNO_1 ELSE NULL END,'/')AS DOCNO_1 来自:it_tab_h 通过...分组 客户, FMSNO, 多蒂 ; it_tab_k =选择100个客户端, " a"为FMSNO, 'AA'为DOCTY, " m1"为MAWB, 'n1'为MAWB_1, " o1"作为HAWB_1 从假人 全联盟 选择100个客户, " a"为FMSNO, 'AA'为DOCTY, " m2"为MAWB, 'n2'为MAWB_1, " o2"作为HAWB_1 从假人 ; it_tab_k1 =选择 客户, FMSNO, DOCTY, STRING_AGG(CASE WHEN(MAWB!=``)THEN MAWB ELSE NULL END,'/')AS MAWB, STRING_AGG(CASE WHEN(MAWB_1!=``)THEN MAWB_1 ELSE NULL END,'/')AS MAWB_1, STRING_AGG(CASE WHEN(HAWB_1!=``)THEN HAWB_1 ELSE NULL END,'/')AS HAWB_1 来自:it_tab_k 通过...分组 客户, FMSNO, 多蒂 ; 选择T1.CLIENT, T1.FMSNO, T1.DOCTY, T1.FMS_FCR, T1.DOCNO_1, T2.MAWB, T2.MAWB_1, T2.HAWB_1 从 :it_tab_h1 AS T1 内部联接 :it_tab_k1 AS T2 在T1.CLIENT = T2.CLIENT和T1.FMSNO = T2.FMSNO和T1.DOCTY = T2.DOCTY ; END
HI Kedar,
最近我开始学习amdp,非常感谢您再次回答我的问题!
我希望使用sring_agg函数的结果不会重复。
例如:fms_fcr字段根据fmsno是重复的,类似docno_1 mawb mawb_1 hawb_1则根据fmsno不会重复。
it_tab_h = SELECT100ASCLIENT,
'a'as FMSNO,
" AA"为DOCTY,
" x1"为FMS_FCR,
" y1"为DOCNO_1
傻瓜
UNIONALL
SELECT100ASCLIENT,
" y2"为DOCNO_1
;
预期结果是
以下是我的sql,但是it_warno无法内部加入it_cabno导致错误,请指导我如何纠正,
CLASS zcl_flights_demo_cds定义
公共
最终
创建公共。
公共部分。
接口if_amdp_marker_hdb。
类别方法:FOR TABLE FUNCTION ZDEMO_FLIGHTS_TABLE_FUNCTION的flights_connections。
受保护的部分。
专用部分。
ENDCLASS。
CLASS zcl_flights_demo_cds实施。
METHOD Flights_connections
通过数据库功能
对于HDB
语言SQLSCRIPT
只读选项
使用ZHX_FMST0059 ZHX_FMST0059I_BD。
it_warno =选择
将A.MANDT作为客户端,
A.FMSNO作为FMSNO,
B.warno AS warno从ZHX_FMST0059以A
A.DOCNO = B.DOCNO上的INNER JOIN ZHX_FMST0059I_BD AS B
WHERE DOCTY ='A';
it_cabno =选择
DISTINCT A.MANDT作为客户端,
B.cabno作为cabno,从ZHX_FMST0059作为A
A.DOCNO = B.DOCNO上的内部联接ZHX_FMST0059I_BD AS B
it_tab_h =选择
A.CLIENT,
A.FMSNO,
A.WARNO,
B.CABNO
FROM:it_warno AS A
左联接:it_cabno AS B ON A.FMSNO = B.FMSNO;
返回选择
客户,
fmsno,
STRING_AGG(CASE WHEN(warno!=``)THEN warno ELSE NULL END,'/')AS warno,
STRING_AGG(用小写,如果(CABNO!=``)THEN CABNO ELSE NULL END,'/')as CABNO
从:it_tab_h
按客户分组,fmsno;
终结法。
最多设置5个标签!
伊万,你好
基于CLIENT,FMSNO和DOCTY列,您可以连接这两个表。 联接可以基于表数据而保留或保留。
请参考下面的示例SQL:
HI Kedar,
最近我开始学习amdp,非常感谢您再次回答我的问题!
我希望使用sring_agg函数的结果不会重复。
例如:fms_fcr字段根据fmsno是重复的,类似docno_1 mawb mawb_1 hawb_1则根据fmsno不会重复。
it_tab_h = SELECT100ASCLIENT,
'a'as FMSNO,
" AA"为DOCTY,
" x1"为FMS_FCR,
" y1"为DOCNO_1
傻瓜
UNIONALL
SELECT100ASCLIENT,
'a'as FMSNO,
" AA"为DOCTY,
" x1"为FMS_FCR,
" y2"为DOCNO_1
傻瓜
;
预期结果是
以下是我的sql,但是it_warno无法内部加入it_cabno导致错误,请指导我如何纠正,
CLASS zcl_flights_demo_cds定义
公共
最终
创建公共。
公共部分。
接口if_amdp_marker_hdb。
类别方法:FOR TABLE FUNCTION ZDEMO_FLIGHTS_TABLE_FUNCTION的flights_connections。
受保护的部分。
专用部分。
ENDCLASS。
CLASS zcl_flights_demo_cds实施。
METHOD Flights_connections
通过数据库功能
对于HDB
语言SQLSCRIPT
只读选项
使用ZHX_FMST0059 ZHX_FMST0059I_BD。
it_warno =选择
将A.MANDT作为客户端,
A.FMSNO作为FMSNO,
B.warno AS warno从ZHX_FMST0059以A
A.DOCNO = B.DOCNO上的INNER JOIN ZHX_FMST0059I_BD AS B
WHERE DOCTY ='A';
it_cabno =选择
DISTINCT A.MANDT作为客户端,
A.FMSNO作为FMSNO,
B.cabno作为cabno,从ZHX_FMST0059作为A
A.DOCNO = B.DOCNO上的内部联接ZHX_FMST0059I_BD AS B
WHERE DOCTY ='A';
it_tab_h =选择
A.CLIENT,
A.FMSNO,
A.WARNO,
B.CABNO
FROM:it_warno AS A
左联接:it_cabno AS B ON A.FMSNO = B.FMSNO;
返回选择
客户,
fmsno,
STRING_AGG(CASE WHEN(warno!=``)THEN warno ELSE NULL END,'/')AS warno,
STRING_AGG(用小写,如果(CABNO!=``)THEN CABNO ELSE NULL END,'/')as CABNO
从:it_tab_h
按客户分组,fmsno;
终结法。
ENDCLASS。
一周热门 更多>