达人:请教一下 目标:将数据表中的结果存入到内表A中,同时也对查询出来的明细汇总也存入到内表A中,然后一起输出到EXCEL模板中.说明:如下这段代码我将数据表中的数据查询出来存到内表中ITAB_OK同时要对查询出来的结果根据A~AUART "销售凭证类型 B~MATNR "物料号 B~POSNR "销售凭证项目对 B~KWMENG "订单数C~MENGE "数量 汇总也存入ITAB_OK中然后然后一起输出到EXCEL模板中请问如何做.另多个表关联我采用了连续INNER JOIN 听说这种写法性能性不高.请问有什么更好的解决方法吗?谢谢 SELECT A~AUART "销售凭证类型 B~ERDAT "建立纪录日期 B~VSTEL "接收点 B~LGORT "库存地点 B~KWMENG "订单数 B~MATNR "物料号 B~POSNR "销售凭证项目 B~VBELN "销售凭证 A~KUNNR "售达方 A~VSBED "装运条件 A~VKBUR "销售办事处 A~VKGRP "销售组 A~SPART "产品组 A~VTWEG "分销渠道 A~VKORG "销售组织 A~AUGRU "订购原因 A~XBLNR "参考凭证号 C~DMBTR "按本位币计的金额 C~MENGE "数量 C~BWART "移动类型 C~MBLNR "物料凭证编号 D~BUDAT "凭证中的记帐日期 INTO CORRESPONDING FIELDS OF TABLE ITAB_OK FROM VBAK AS A INNER JOIN VBAP AS B ON A~VBELN = B~VBELN INNER JOIN MSEG AS C ON B~MATNR = C~MATNR AND B~VBELN = C~KDAUF AND B~POSNR = C~KDPOS INNER JOIN MKPF AS D ON C~MBLNR = D~MBLNR AND C~MJAHR = D~MJAHR WHERE A~AUART = 'ZFD' AND A~KUNNR IN P_KUNNR AND A~VKORG IN P_VKORG AND A~VKBUR IN P_VKBUR AND A~VTWEG IN P_VTWEG AND B~MATNR IN P_MATNR AND B~ERDAT IN P_ERDAT AND A~ERNAM IN P_ERNAM AND D~BUDAT IN P_BUDAT AND B~VBELN IN P_VBELN AND C~BWART = '903'
香蕉 wrote:data: begin of itab_ok OCCURS 0, AUART like VBAK-auart,"销售凭证类型 ERDAT like VBAP-erdat,"建立纪录日期 VSTEL like VBAP-vstel,"接收点 LGORT like VBAP-lgort,"库存地点 KWMENG like VBAP-kwmeng,"订单数 MATNR like vbap-matnr,"物料号 POSNR like VBAP-posnr,"销售凭证项目 VBELN like VBAP-vbeln,"销售凭证 KUNNR like VBAK-kunnr,"售达方 VSBED like VBAK-vsbed,"装运条件 VKBUR like VBAK-vkbur,"销售办事处 VKGRP like VBAK-vkgrp,"销售组 SPART like VBAK-spart,"产品组 VTWEG like VBAK-vtweg,"分销渠道 VKORG like VBAK-vkorg,"销售组织 AUGRU like VBAK-augru,"订购原因 XBLNR like VBAK-xblnr,"参考凭证号 DMBTR like MSEG-dmbtr,"按本位币计的金额 MENGE like MSEG-menge, "数量 BWART like MSEG-bwart,"移动类型 MBLNR like mseg-mblnr,"物料凭证编号 budat like mkpf-budat, mjahr like mseg-mjahr, end of itab_ok. select A~AUART "销售凭证类型 B~ERDAT "建立纪录日期 B~VSTEL "接收点 B~LGORT "库存地点 B~KWMENG "订单数 B~MATNR "物料号 B~POSNR "销售凭证项目 B~VBELN "销售凭证 A~KUNNR "售达方 A~VSBED "装运条件 A~VKBUR "销售办事处 A~VKGRP "销售组 A~SPART "产品组 A~VTWEG "分销渠道 A~VKORG "销售组织 A~AUGRU "订购原因 A~XBLNR "参考凭证号 INTO CORRESPONDING FIELDS OF TABLE ITAB_OK FROM VBAK AS A INNER JOIN VBAP AS B ON A~VBELN = B~VBELN WHERE A~AUART = 'ZFD' AND A~KUNNR IN P_KUNNR AND A~VKORG IN P_VKORG AND A~VKBUR IN P_VKBUR AND A~VTWEG IN P_VTWEG AND B~MATNR IN P_MATNR AND B~ERDAT IN P_ERDAT AND A~ERNAM IN P_ERNAM * AND D~BUDAT IN P_BUDAT AND B~VBELN IN P_VBELN. * AND C~BWART = '903'. loop at itab_ok. select single DMBTR "按本位币计的金额 MENGE "数量 BWART "移动类型 MBLNR "物料凭证编号 mjahr into (itab_ok-dmbtr,itab_ok-menge,itab_ok-bwart,itab_ok-mblnr,itab_ok-mjahr) from mseg where matnr = itab_ok-matnr and kdauf = itab_ok-vbeln and kdpos = itab_ok-posnr and bwart = '903'. select single BUDAT into itab_ok-budat from mkpf WHERE mblnr = itab_ok-mblnr and mjahr = itab_ok-mjahr AND BUDAT IN P_BUDAT. modify itab_ok. endloop. 改成这样可能会好一点.试试吧.