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里的语句找有没有版本比当前数据行版本更高的,有就不要了,没有就保留。