欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

SAP-ABAP-SQL--年和月分开的列取最大年月的语句

在实际开发报表过程中,可能会使用到某个表里的最大年最大月甚至最大版本的一行数据,年月不在一起,如下图

 

 其他表想根据物料编码找最大年月甚至最大版本的销售计划数量。

1、找最大年月的某物料的销售数量

 SELECT * INTO TABLE @DATA(LT_ZTSD119_PIE) FROM ZTSD119_PIE
        WHERE MATNR IN @S_MATNR
        AND GJAHR = ( SELECT MAX( GJAHR ) FROM ZTSD119_PIE )
        AND MONAT = ( SELECT MAX( MONAT )  FROM ZTSD119_PIE  WHERE GJAHR = ( SELECT MAX( GJAHR ) FROM ZTSD119_PIE ) )."取最大年月的PIE导入数据

相当于月份的话等于最大年份最大的月份,年份等于最大的年份。

2、找最大年月的物料的销售数量

SELECT MATNR,GJAHR,MONAT,CONCAT( GJAHR,MONAT ) AS ZNY,VRSIN,SUM( MENGE ) AS SUMMENGE  FROM ZTSD041 AS A
  WHERE NOT EXISTS
  ( SELECT 1 FROM ZTSD041 AS B WHERE B~VRSIN > A~VRSIN AND B~MATNR = A~MATNR AND B~GJAHR = A~GJAHR AND B~MONAT = A~MONAT )
  AND MATNR IN @S_MATNRS
  GROUP BY GJAHR ,MONAT, VRSIN,MATNR ORDER BY MATNR,GJAHR, MONAT,VRSIN INTO  TABLE @DATA(LT_ZTSD041_ALL_GET).

理解为先找出所有数据,再根据not exist里的语句找有没有版本比当前数据行版本更高的,有就不要了,没有就保留。

posted @ 2022-09-22 15:57  萧静默  阅读(733)  评论(0编辑  收藏  举报