惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
小众软件
小众软件
博客园_首页
博客园 - 聂微东
罗磊的独立博客
Recent Announcements
Recent Announcements
U
Unit 42
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
D
DataBreaches.Net
Last Week in AI
Last Week in AI

博客园 - seven1314pp

SAP ABAP SQL COALESCE 函数是用于处理 NULL 值的一种功能 SAP ABAP json字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json SAP ABAP 从一个程序调用另外一个程序的perform XXX(另一个程序) SAP ABAP 创建后台job SAP ABAP 客制表-表格维护器-自动带出描述等 SAP ABAP 选择屏幕按钮在同一行 SAP ABAP 一个通用的ALV框架(值得收藏) SAP ABAP ALV 布局 SAP ABAP开发技巧-ALV报表通过函数获取结构或表字段写入FIELDCAT SAP ABAP财务开发必备ABAP语法之 DO VARYING abap 分割字符串 ABAP 读取其他ALV的显示结果 SAP 会计凭证字段可以更改 SAP ABAP弹出对对话框错误信息设计 SAP ABAP 部分增强点 [ABAP] ABAP 三类内表 PYTHON 简单的网页图片爬虫 财务凭证生成过程中增强技术 SAP BTE增强 ABAP FB02 修改会计凭证的抬头文本/行项目文本的函数 ABAP ALV 单元格按钮 SAP日志表 CDHDR和CDPOS SAP abap外部断点 abap screen页签开发注意事项 abap screen表格控件后续增加栏位
SAP ABAP SQL CASE 套 CASE
seven1314pp · 2026-02-25 · via 博客园 - seven1314pp

直接上代码

"数据提取
  SELECT a~bukrs, a~werks, a~matnr, a~blart, a~gjahr, a~poper,    "a表上的年度  期间
         a~racct, c~wadat_ist, a~wsl, a~msl,
        CASE WHEN d~xchar = 'X' THEN
               CASE WHEN a~msl < 0 THEN d~kcmeng * -1       
                                   ELSE d~kcmeng
                         END
             ELSE
               CASE WHEN a~msl < 0 THEN d~lgmng * -1       
                                   ELSE d~lgmng
                         END
          END AS fklmg,
                  d~meins ,    
         CAST( substring( c~wadat_ist, 1, 4 ) AS NUMC ) AS gjahr_dn, CAST( concat( '0', substring( c~wadat_ist, 5, 2 ) ) AS NUMC ) AS poper_dn   "发货单上的年度 期间
    FROM @lt_acdoca_bkpf_rv AS a
    INNER JOIN vbrp AS b ON a~awref = b~vbeln AND a~awitem = b~posnr
    INNER JOIN likp AS c ON b~vgbel = c~vbeln
    INNER JOIN lips AS d ON b~vgbel = d~vbeln AND b~vgpos = d~posnr 
    INTO TABLE @DATA(lt_rv_sum_t).

 下面是CASE--CASE--CASE三层

  SELECT a~bukrs, b~werks, a~matnr, a~blart, a~gjahr, a~poper,    "a表上的年度  期间
         a~racct, a~rassc, c~wadat_ist, a~wsl, a~msl,             "20280228  增加rassc字段
        "20260302  先判断交货单行项次类别   在判断批次是否启用批次
        CASE WHEN d~pstyv = 'Z017' THEN
               CASE WHEN a~msl < 0 THEN b~fklmg * -1
                                   ELSE b~fklmg
                         END
             ELSE
               CASE WHEN d~xchar = 'X' THEN
                      CASE WHEN a~msl < 0 THEN d~kcmeng * -1
                                          ELSE d~kcmeng
                           END
                    ELSE
                      CASE WHEN a~msl < 0 THEN d~lgmng * -1
                                          ELSE d~lgmng
                           END
               END
          END AS fklmg,
                  d~meins ,    "交货单的基本计量单位  20260221
         b~vbeln, b~fklmg AS ff, d~pstyv,
         CAST( substring( c~wadat_ist, 1, 4 ) AS NUMC ) AS gjahr_dn, CAST( concat( '0', substring( c~wadat_ist, 5, 2 ) ) AS NUMC ) AS poper_dn   "发货单上的年度 期间
    FROM @lt_acdoca_bkpf_rv AS a
    INNER JOIN vbrp AS b ON a~awref = b~vbeln AND a~awitem = b~posnr
    INNER JOIN likp AS c ON b~vgbel = c~vbeln
    INNER JOIN lips AS d ON b~vgbel = d~vbeln AND b~vgpos = d~posnr "20260215
    INTO TABLE @DATA(lt_rv_sum_t).