SAP 未清销售订单的取值

每个公司都会有自己的销售报表,

一般来说VA05的都满足不了客户的定制化需求。

所以都要进行自定义报表的开发,

在开发的过程中,也会有未清销售订单和已清销售订单的区分

一开始我的想法是,根据销售订单去找交货单累计已交货的数量,

然后再用销售订单的数量减去已交货的数量,

但是这种计算方法,程序的运行效率就会比较低,

我就用了ST05去debug VA05的 open so的计算方法

具体sql 如下

SELECT
     DISTINCT VBAK.AUART, VBAK.AUDAT, COALESCE( VBKD.BSTKD , VBKD_HEAD.BSTKD ),     
     VBAK.KUNNR, VBAP.KWMENG, VBAP.MATNR, VBAP.POSNR, VBAK.SPART, VBAP.NETWR,       
     VBAK.VBELN, VBAK.VKORG, VBAP.VRKME, VBAK.VTWEG, VBAK.WAERK                     
   FROM
     VBAK INNER JOIN VBAP ON VBAP.MANDT = '200' AND VBAP.VBELN = VBAK.VBELN         
     INNER JOIN VBKD VBKD_HEAD ON VBKD_HEAD.MANDT = '200' AND VBKD_HEAD.VBELN =     
     VBAK.VBELN AND VBKD_HEAD.POSNR = '000000' LEFT OUTER JOIN VBKD ON VBKD.        
     MANDT = '200' AND VBKD.VBELN = VBAP.VBELN AND VBKD.POSNR = VBAP.POSNR          
   WHERE
     VBAK.MANDT = '200' AND VBAK.TRVOG = '0' AND ( VBAK.ERDAT BETWEEN               
     '20240301' AND '20240315') AND ((VBAK.GBSTK IN ('A','B') OR VBAK.LFGSK IN      
     ('A','B')) OR (VBAP.GBSTA IN ('A','B') OR VBAP.LFGSA IN ('A','B'))) AND ((     
     VBAK.GBSTK IN ('A','B') OR VBAK.LFGSK IN ('A','B')) OR (VBAP.GBSTA IN ('A'     
     ,'B') OR VBAP.LFGSA IN ('A','B')))                                             
   ORDER BY
     VBAK.VBELN            

然后因为IN 在CDS 中无法使用,故我改版了一个cds view

define view ZCDS_OPEN_SO as select from vbak 
     inner join vbap on vbap.mandt = $session.client and vbap.vbeln = vbak.vbeln         
     inner join vbkd as VBKD_HEAD on VBKD_HEAD.mandt = $session.client and VBKD_HEAD.vbeln =  vbak.vbeln and VBKD_HEAD.posnr = '000000' 
     left outer join vbkd on vbkd.mandt = $session.client and vbkd.vbeln = vbap.vbeln and vbkd.posnr = vbap.posnr 
{  
     vbak.auart,
     vbak.audat, 
     COALESCE( vbkd.bstkd , VBKD_HEAD.bstkd ) as BSTKD,     
     vbak.kunnr, 
     vbap.kwmeng, 
     vbap.matnr, 
     vbap.posnr, 
     vbak.spart, 
     vbap.netwr,       
     vbak.vbeln, 
     vbak.vkorg, 
     vbap.vrkme, 
     vbak.vtweg, 
     vbak.waerk       
    
} 
 where vbak.trvog = '0' 
 and ( ( ( vbak.gbstk = 'A' or vbak.gbstk = 'B') or ( vbak.lfgsk = 'A' or vbak.lfgsk = 'B') ) or ( ( vbap.gbsta = 'A' or vbap.gbsta = 'B') or ( vbap.lfgsa = 'A' or vbap.lfgsa = 'B') ) ) 
 and ( ( ( vbak.gbstk = 'A' or vbak.gbstk = 'B') or ( vbak.lfgsk = 'A' or vbak.lfgsk = 'B') ) or ( ( vbap.gbsta = 'A' or vbap.gbsta = 'B') or ( vbap.lfgsa = 'A' or vbap.lfgsa = 'B') )  ) 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507772.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面向对象程序之多态

1.多态的概念 简单来说,就是多种形态,具体点就是去完成某个行为,不同的对象去完成会有不同的形态。 举个例子:对于动物,他们吃的都是食物,但狗吃的是狗粮,猫吃的是猫粮,去完成吃这个…

lua脚本在redis集群中哈希槽分片问题

上文说到,通过用redis lua脚本实现时间窗分布式限流 可以操作redis lua脚本来实现时间窗限流,在执行lua脚本的时候,参数中有个keys列表,当lua脚本中如果有操作多个key的情况,就可以传个key列表了。通常情况下&#xff…

Java封装最佳实践:打造高内聚、低耦合的优雅代码~

​ 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、封装 1.1 封装的概念 面向对象程序三大…

python练习二

# Demo85def pai_xu(ls_test):#创建一个列表排序函数命名为pai_xu# 对创建的函数进行注释"""这是一个关于列表正序/倒序排列的函数:param ls_test: 需要排序的列表:return:"""ls1 [int(ls_test[i]) for i in range(len(ls_test))]#对input输入的…

surfer绘制等值线图

surfer介绍 Surfer软件,是美国Golden Software公司编制的一款以画三维图的软件。该软件具有强大的插值功能和绘制图件能力,可用来处理XYZ数据,是地质工作者常用的专业成图软件(来源于百度百科)。 surfer可以用来绘制…

计算机网络—TCP协议详解:特性、应用(1)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:マリンブルーの庭園—ずっと真夜中でいいのに。 0:34━━━━━━️💟──────── 3:34 🔄 ◀️…

Java中常见的锁策略

目录 乐观锁 vs 悲观锁 悲观锁: 乐观锁: 重量级锁 vs 轻量级锁 ⾃旋锁(Spin Lock) 公平锁 vs 非公平锁 可重⼊锁 vs 不可重入锁 读写锁 乐观锁 vs 悲观锁 悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别…

3d整体模型怎么拆图---模大狮模型网

3D整体模型怎么拆图 一、模型准备 在进行3D整体模型的拆图之前,首先需要确保模型的构造清晰明了,各个部件之间的连接关系明确,并且模型的层级结构已经建立完成。 二、确定拆图方式 拆解方向:根据模型的结构和设计需求&#xff…

教你用Fiddler捕获HTTPS请求

安装Fiddler 这里不特别说明了,网上搜索一大把,根据安装引导一步步安装即可。(这里采用的是fiddler v4.6) 配置Fiddler 1、打开fiddler配置Tools –>Telerik Fiddler Options。 2、打开HTTPS配置项,勾选“Captur…

Leetcode-2580-统计将重叠区间合并成组的方案数-c++

题目详见https://leetcode.cn/problems/count-ways-to-group-overlapping-ranges/ 题目要求将最后的ranges分为两个组。也就是说当你的ranges已经满足题目要求的时候,这两个组怎么分是随意的,这里也就引出了 2 k 2^k 2k 的由来,其实就是每组…

Leetcode-2810-故障键盘-c++

题目详见https://leetcode.cn/problems/faulty-keyboard/ 题解 这道题的关键是如何合理地使用STL,毕竟是一道简单题。 之前常用到的Vector容器是单向开口的连续内存空间 deque则是一种双向开口的连续线性空间,又称双端动态数组。所谓的双向开口&#x…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server,打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下,会自动添加…

200个有趣的HTML前端游戏项目合集(持续更新中)

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

[实时流基础 flink] 窗口

在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。 文章目录 6.1 窗口的概念6.2 窗口的分类**1&#x…

让接口自动化测试更简单

HTTP 接口测试很简单,不管工具、框架、还是平台,只要很的好的几个点就是好工具。 测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化。接口依赖问题:B 接口依赖 A 的返回值&#xf…

新model开发记录

模型使用 -- 用blender导出为 fbx ,修改渲染方式(点击模型->Materials->Extract Materials(将材质从fbx中 单独提取出来了)->Materials 选择 Shader -> SimpleURPToonLitExample 点开脸的材质,勾选第一条) 解决角色…

【C++的奇迹之旅(二)】C++关键字命名空间使用的三种方式C++输入输出命名空间std的使用惯例

文章目录 📝前言🌠 C关键字(C98)🌉 命名空间🌠命名空间定义🌉命名空间使用 🌠命名空间的使用有三种方式:🌉加命名空间名称及作用域限定符🌠使用using将命名空间中某个成员…

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄 目录 MATLAB绘制堆叠填充图--巧用句柄1. 主要原理讲解1.1 主要函数1.2 句柄原理 2. 绘图示例2.1 准备数据2.2 绘制堆叠填充图-使用句柄控制图形属性2.3 设置填充颜色和样式2.4 添加标题和标签2.5 绘图效果 3. 结语 堆叠填充图是一种常见的数据可…

StringBuffer与StringBuilder

1.区别 (1). String : 不可变字符序列. (2). StringBuffer : 可变字符序列.线程安全,但效率低. (3). StringBuilder : 可变字符序列.线程不安全,但效率高. 既然StringBuffer与StringBuilder都是可变字符序列,但二者咋区分开呢&#xff1f…

Dimitra:基于区块链、AI 等前沿技术重塑传统农业

根据 2023 年联合国粮食及农业组织(FAO)、国际农业发展基金(IFAD)等组织联合发布的《世界粮食安全和营养状况》报告显示,目前全球约有 7.35 亿饥饿人口,远高于 2019 年的 6.13 亿,这意味着农业仍…