当前位置: 首页 > news >正文

读取工艺路线唯一工序的代码

1、DB02中SQL代码,下面代码是读取直接人工数字最大的工序

SELECT
m.WERKS AS plant,
m.MATNR AS material,
m.PLNNR AS route_no,
a.PLNKN AS operation,
o.VGW01 AS direct_labor
FROM
MAPL m
INNER JOIN PLKO k ON m.PLNNR = k.PLNNR AND m.PLNAL = k.PLNAL
INNER JOIN PLAS a ON k.PLNNR = a.PLNNR AND k.PLNAL = a.PLNAL
INNER JOIN PLPO o ON a.PLNNR = o.PLNNR AND a.PLNKN = o.PLNKN
WHERE
m.MATNR = '8014217002'
AND m.WERKS = '8201'
AND k.PLNTY = 'N'
AND m.LOEKZ = ''
AND k.LOEKZ = ''
AND a.LOEKZ = ''
AND o.LOEKZ = ''
AND o.VGW01 = (
SELECT MAX(o2.VGW01)
FROM MAPL m2
INNER JOIN PLKO k2 ON m2.PLNNR = k2.PLNNR AND m2.PLNAL = k2.PLNAL
INNER JOIN PLAS a2 ON k2.PLNNR = a2.PLNNR AND k2.PLNAL = a2.PLNAL
INNER JOIN PLPO o2 ON a2.PLNNR = o2.PLNNR AND a2.PLNKN = o2.PLNKN
WHERE m2.MATNR = '801421002'
AND m2.WERKS = '8201'
AND k2.PLNTY = 'N'
AND m2.LOEKZ = ''
AND k2.LOEKZ = ''
AND a2.LOEKZ = ''
AND o2.LOEKZ = ''
)
ORDER BY
a.PLNKN;

2、对应的ABAP代码段:

方法1:

SELECT m~werks,

m~matnr,

o~vgw01,

o~zcode “增强字段,用于存储该工序的人数

INTO TABLE @lt_ops

FROM mapl AS m

INNER JOIN plko AS k

ON m~plnnr = k~plnnr

AND m~plnal = k~plnal

AND k~werks = m~werks

INNER JOIN plas AS a

ON k~plnnr = a~plnnr

AND k~plnal = a~plnal

AND k~plnty = a~plnty

INNER JOIN plpo AS o

ON a~plnnr = o~plnnr

AND a~plnkn = o~plnkn

AND a~plnty = o~plnty

FOR ALL ENTRIES IN @lt_matnr_werks

WHERE m~werks = @lt_matnr_werks-werks

AND m~matnr = @lt_matnr_werks-matnr

AND k~plnty = 'N'

AND m~loekz = ''

AND m~plnal = ( SELECT MAX( m2~plnal )

FROM mapl AS m2

WHERE m2~werks = m~werks

AND m2~matnr = m~matnr

AND m2~plnty = m~plnty

AND m2~plnnr = m~plnnr

AND m2~loekz = '' )

AND k~delkz = ''

AND a~loekz = ''

AND o~loekz = ''.

方法2:

FORM frm_get_sta_lab .
DATA: BEGIN OF ls_matnr_werks,
werks TYPE werks_d,
matnr TYPE matnr,
END OF ls_matnr_werks,
lt_matnr_werks LIKE TABLE OF ls_matnr_werks.

DATA: BEGIN OF ls_max_vgw01,
werks TYPE werks_d,
matnr TYPE matnr,
max_vgw01 TYPE plpo-vgw01,
zcode TYPE plpo-zcode,
END OF ls_max_vgw01,
lt_max_vgw01 LIKE TABLE OF ls_max_vgw01.

FIELD-SYMBOLS: <fs_out> LIKE LINE OF gt_out.

CHECK gt_out[] IS NOT INITIAL.

LOOP AT gt_out ASSIGNING <fs_out>.
ls_matnr_werks-werks = <fs_out>-werks.
ls_matnr_werks-matnr = <fs_out>-plnbez.
COLLECT ls_matnr_werks INTO lt_matnr_werks.
ENDLOOP.

SORT lt_matnr_werks BY werks matnr.

IF lt_matnr_werks[] IS NOT INITIAL.

DATA: BEGIN OF ls_op,
werks TYPE werks_d,
matnr TYPE matnr,
vgw01 TYPE plpo-vgw01,
zcode TYPE plpo-zcode,
END OF ls_op,
lt_ops LIKE TABLE OF ls_op.

SELECT m~werks,
m~matnr,
o~vgw01,
o~zcode
INTO TABLE @lt_ops
FROM mapl AS m
INNER JOIN plko AS k
ON m~plnnr = k~plnnr
AND m~plnal = k~plnal
AND k~werks = m~werks
INNER JOIN plas AS a
ON k~plnnr = a~plnnr
AND k~plnal = a~plnal
AND k~plnty = a~plnty
INNER JOIN plpo AS o
ON a~plnnr = o~plnnr
AND a~plnkn = o~plnkn
AND a~plnty = o~plnty
FOR ALL ENTRIES IN @lt_matnr_werks
WHERE m~werks = @lt_matnr_werks-werks
AND m~matnr = @lt_matnr_werks-matnr
AND k~plnty = 'N'
AND m~loekz = ''
AND k~delkz = ''
AND a~loekz = ''
AND o~loekz = ''.



* SELECT m~werks,
* m~matnr,
* o~vgw01,
* o~zcode
* INTO TABLE @lt_ops
* FROM mapl AS m
* INNER JOIN plko AS k
* ON m~plnnr = k~plnnr
* AND m~plnal = k~plnal
* AND k~werks = m~werks
* INNER JOIN plas AS a
* ON k~plnnr = a~plnnr
* AND k~plnal = a~plnal
* AND k~plnty = a~plnty
* INNER JOIN plpo AS o
* ON a~plnnr = o~plnnr
* AND a~plnkn = o~plnkn
* AND a~plnty = o~plnty
* FOR ALL ENTRIES IN @lt_matnr_werks
* WHERE m~werks = @lt_matnr_werks-werks
* AND m~matnr = @lt_matnr_werks-matnr
* AND k~plnty = 'N'
* AND m~loekz = ''
* AND m~plnal = ( SELECT MAX( m2~plnal )
* FROM mapl AS m2
* WHERE m2~werks = m~werks
* AND m2~matnr = m~matnr
** AND m2~plnty = m~plnty
** AND m2~plnnr = m~plnnr
* AND m2~loekz = '' )
* AND k~delkz = ''
* AND a~loekz = ''
* AND o~loekz = ''.

IF lt_ops IS NOT INITIAL.
SORT lt_ops BY werks matnr.
LOOP AT lt_ops INTO ls_op GROUP BY ( werks = ls_op-werks matnr = ls_op-matnr ) ASSIGNING FIELD-SYMBOL(<grp>).
DATA: lv_max TYPE plpo-vgw01,
lv_zc TYPE plpo-zcode.
CLEAR: lv_max, lv_zc.
LOOP AT GROUP <grp> ASSIGNING FIELD-SYMBOL(<row>).
IF <row>-vgw01 >= lv_max.
lv_max = <row>-vgw01.
lv_zc = <row>-zcode.
ENDIF.
ENDLOOP.
CLEAR ls_max_vgw01.
ls_max_vgw01-werks = <grp>-werks.
ls_max_vgw01-matnr = <grp>-matnr.
ls_max_vgw01-max_vgw01 = lv_max.
ls_max_vgw01-zcode = lv_zc.
APPEND ls_max_vgw01 TO lt_max_vgw01.
ENDLOOP.
ENDIF.
ENDIF.

CHECK lt_max_vgw01 IS NOT INITIAL.

SORT lt_max_vgw01 BY werks matnr.

LOOP AT gt_out ASSIGNING <fs_out>.
CLEAR: <fs_out>-zbzrygs.

READ TABLE lt_max_vgw01 INTO ls_max_vgw01
WITH KEY werks = <fs_out>-werks
matnr = <fs_out>-plnbez
BINARY SEARCH.

IF sy-subrc = 0.
IF <fs_out>-gamng IS NOT INITIAL
AND ls_max_vgw01-max_vgw01 IS NOT INITIAL
AND ls_max_vgw01-max_vgw01 <> 0.
IF <fs_out>-mtart = 'Z201' or <fs_out>-mtart = 'Z101'.

<fs_out>-zbzrygs = ls_max_vgw01-max_vgw01 * ls_max_vgw01-zcode * <fs_out>-gamng.

<fs_out>-ZMISM01 = ls_max_vgw01-max_vgw01 * <fs_out>-gamng.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.

ENDFORM.

http://www.jsqmd.com/news/307274/

相关文章:

  • 企业人力资源管理规划战略设计方案(431页PPT)
  • 防脱洗发水排行榜口碑最好的十款!洗发水防脱生发哪个牌子好?防脱洗发水品牌推荐第一名
  • 实验室安全控制系统实力厂家综合对比
  • 深入理解 SpringBoot 核心:自动配置原理、ImportSelector与安装加载机制
  • 5分钟教你如何在HarmonyOS高效中使用sklll
  • Vue3+Cesium实现高度雾
  • 百考通AIGC检测功能:免费、精准、专为中文教育场景打造的AI内容识别专家
  • Vue3+Cesium积雪效果,动态设置颜色厚度
  • 最新 谷歌地球3D 建筑图像与 3D 地形图像下载
  • 技术日报|React视频工具Remotion三连冠日增1374星破3万,Apple Silicon语音库mlx-audio爆火登榜第二
  • 智驾与电池双线突破?AUTO TECH China 2026广州新能源汽车展解码产业新局
  • 面积图的奇妙变形:流图与地平线图
  • 2026年1月直流恒流源哪家好:品质、售后与性价比
  • 2026年好用的全面预算管理系统供应商口碑推荐榜:ESG与动态预算整合篇
  • 【ACM出版 | EI检索】第五届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2026)
  • 学生选课|基于java+ vue学生选课系统(源码+数据库+文档)
  • 2026制氧机市场风向标:国内优质品牌推荐,二氧化碳/储罐/真空管/液氮速冻机/液氧/制氧机/液氩,制氧机供应商排行榜单
  • 2026优秀全面预算管理系统源头厂家排行榜:韧性决策与场景模拟能力深度评测
  • 2026真空干燥箱哪家做得好?从性能到售后,优质厂家选购参考
  • 2025年外用贴敷透皮贴定制厂家口碑与实力综合排行,外用贴剂/传统膏贴敷剂/敷贴制剂/中医穴位贴敷/皮肤给药贴外用贴敷透皮贴源头厂家有哪些
  • 2026热门的全面预算管理系统源头厂家口碑推荐:集成生态价值透视
  • 聊聊乡村振兴发展规划设计院,哪家更值得选看这里
  • 剖析地理定位GEO服务,珠海中山江门地区靠谱公司排名揭秘
  • 盘点2026年美国展览工厂服务排名,好用的品牌不容错过
  • 盘点唐山性价比高的售后好的本地全屋整装公司
  • 探寻零售业人工智能转型方案,广东口碑好的公司怎么选择?
  • 口碑好的全面预算管理系统供应商推荐排行:2026协同韧性实证
  • 2026年挤塑板保温装饰一体板品牌哪家强?行业好评榜揭秘,岩棉保温装饰一体板,保温装饰一体板品牌排名
  • 血浆p-tau181水平与阿尔茨海默病进展的关联是否存在性别差异?
  • 血浆p-tau231能否成为阿尔茨海默病更早期的精准生物标志物?