按两个字段对itab进行排序

2020-09-01 05:06发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我有一个要求。
在内部表格itab中,我有以下字段

文档编号。 日期金额
1800000170 20190701 100000.00

1800000219 20190802 55000.00

1400000232 20190829 315.00

1800000170 20190829 5000.00-

1800000170 20190903 10000.00-

0900000332 20190918 492.24

我想对其进行排序以获得所需的结果

文件编号 日期金额

1800000170 20190701 100000.00

1800000170 20190903 10000.00-

1800000170 20190829 5000.00-

1800000219 20190802 55000.00

1400000232 20190829 315.00

0900000332 20190918 492.24

其中起始日期为(20190701)的文件编号应放在首位,并且相同文件编号也应放在首位。
请为此提供准确的解决方案。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我有一个要求。
在内部表格itab中,我有以下字段

文档编号。 日期金额
1800000170 20190701 100000.00

1800000219 20190802 55000.00

1400000232 20190829 315.00

1800000170 20190829 5000.00-

1800000170 20190903 10000.00-

0900000332 20190918 492.24

我想对其进行排序以获得所需的结果

文件编号 日期金额

1800000170 20190701 100000.00

1800000170 20190903 10000.00-

1800000170 20190829 5000.00-

1800000219 20190802 55000.00

1400000232 20190829 315.00

0900000332 20190918 492.24

其中起始日期为(20190701)的文件编号应放在首位,并且相同文件编号也应放在首位。
请为此提供准确的解决方案。

谢谢

付费偷看设置
发送
5条回答
lukcy2020
1楼-- · 2020-09-01 05:57

嗨,

如果您按文档使用SORT Itab,则它应该同时包含所有文档编号。

如果您也要对该组中的日期进行SORT日期。 您可以根据需要使用SORT itab文档DESCENDING日期​​ASCENDING或根据需要更改排序方向。

希望这会有所帮助。

注意事项

GK

nice_wp
2楼-- · 2020-09-01 05:38

你好库纳尔·古萨哈尼

要对内部表的两个字段进行排序,您需要为每个字段显式指定顺序,如下所示,下面的示例代码。 使用以下概念并相应地应用。

按文件编号升序排序SOTA ITAB

降序金额。

在我看不到任何订单的情况下

致谢

宇峰Kouji
3楼-- · 2020-09-01 05:46

"请提供准确的解决方案"-SCN的目的不是为他们做事。 从问题文本尚不清楚技术挑战到底是什么。 这就是为什么其他一些答案实际上试图解释SORT命令语法的原因。

在这种情况下,没有单一的排序顺序,您需要操纵记录以这种方式将它们放在一起。 显然,起初记录是按日期排序的,但是您似乎想将具有相同编号的记录分组,而不考虑它们的日期。

因为有两个单独的任务(按日期排序,然后分组 按数字),我认为您需要使用第二个临时表来安排记录。 如何进行精确处理取决于数据量,如何呈现等。尽管编程似乎不是一件非常具有挑战性的事情,所以我对此问题有些困惑。 不需要高级知识,只需想到一种算法即可。 在纸上写下第一个想到的解决方案,然后看看是否可以改进。

奄奄一息的小鱼
4楼-- · 2020-09-01 05:50

1。按日期排序itabA。

2.itabB = itabA。

3.SORT itabB BY文档编号日期。

4。从itabB比较文件中删除相邻的重复文件。

5。按日期排序itabB。

6。

在itabB上循环播放

在itabA的文档编号= itabB文档编号

itabC = itabA。

附加itabC。

ENDLOOP。

ENDLOOP。

7。结果= itabC

shere_lin
5楼-- · 2020-09-01 05:39

前成员

使用以下代码,它将有助于按您说的进行排序

类型:tt_final开头,
   docno TYPE char1024,
   日期TYPE数据,
   金额TYPE整数,
   tt_final结束。


 数据:tt_final的lt_final TYPE标准表,
       lwa_final类型tt_final。


 lwa_final-docno ='1800000170'。
 lwa_final-date ='20190701'。
 lwa_final-amount ='100000.00'。


 将lwa_final附加到lt_final。
 清除:lwa_final。


 lwa_final-docno ='1800000219'。
 lwa_final-date ='20190902'。
 lwa_final-amount ='55000.00'。


 将lwa_final附加到lt_final。
 清除:lwa_final。


 lwa_final-docno ='1400000232'。
 lwa_final-date ='20190829'。
 lwa_final-amount ='315.00'。


 将lwa_final附加到lt_final。
 清除:lwa_final。


 按日期升序排序lt_final。
 

一周热门 更多>