如何从 table 中获取记录数?

how to get the num of records from a table?

SELECT COUNT(*) AS NumberOfRecords FROM tableX; 如何将其转换为 sap ABAP

对于数据库 table,您可以 SELECT COUNT 这样做:

SELECT COUNT( * )
    INTO numberOfRecords
    FROM tableX. 

要获取内部 table 的行数,您需要 DESCRIBE 语句:

DESCRIBE TABLE tableX LINES numberOfRecords. 

对于内部表,您也可以使用此内置函数:

numberOfRecords = lines( tableX)

您可以使用 ABAP 语句:

DESCRIBE TABLE itab[] lines lv_no.

1) 如果您只想计算数据库 table 中的记录数,请使用以下语法。

SELECT COUNT( * ) INTO RecordCount FROM tableX.

2) 但是,如果您需要处理记录以及计数,请使用以下内容。

SELECT * INTO TABLE itab FROM tableX.
DESCRIBE TABLE itab[] lines RecordCount.

我遇到了类似的问题,一位同事让我关注。 我需要一个数据库 table 中的条目计数作为一个键,并且没有在此处输入代码想在循环中执行 select count(*)。 因此,我们使用唯一键创建了一个排序的 table,在循环之前和循环中对 table 执行了 select...endselect 条件只需阅读这个新排序的 table:

types:
            begin of ts_tab
                        f1 type 1
                        f2 type 2
                        f3 type i
            end of ts_tab
            tt_tab type sorted table of ts_tab
            with unigue key f1 f2
 
select f1 f2 into coorresponding fields of ls_tab
            read table lt_tab assigning <ls_tab>
                        with table key f1 = f1 etc.
            if sy-subrc = 0.
                        add 1 to <ls_tab>-f3
            else.
                        ls_tab-f3 = 1.
                        insert ls_tab into lt_tab.
            endif.
endselect 
loop etc.

   read lt_tab into ls_tab with key f1 = f1 f2 = f2.
   if sy-subrc eq 0.
      my_count = ls_tabl-f3.
   endif

endloop