gpt4 book ai didi

abap - 如何获取数据库表的行数

转载 作者:行者123 更新时间:2023-12-05 08:44:33 36 4
gpt4 key购买 nike

我只是 abap 语言的新手,我正在尝试练习内部连接语句,但我不知道如何在输出前获取我的 select 语句的行数。

这是我想要实现的目标。

<--------------------------------------- >

< total number of rows > Record(s) found |

Column Header 1|Column Header 2 ..

< data
....
retrieved >


<--------------------------------------- >

下面是我的选择语句:

 SELECT spfli~carrid scarr~carrname sflight~planetype sflight~fldate sflight~price spfli~cityfrom spfli~cityto
INTO (g_carrid ,g_carrname ,g_planetype,g_fldate ,g_price ,g_cityfrom ,g_cityto) FROM spfli
INNER JOIN sflight
ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid
INNER JOIN scarr
ON scarr~carrid = spfli~carrid
WHERE spfli~carrid = s_carrid-low.

WRITE: / g_carrname ,g_planetype,g_fldate ,g_price ,g_cityfrom ,g_cityto.

ENDSELECT.

如果您对如何使用内部表执行此操作有任何建议和想法,请给我一个示例。我真的很想学习。谢谢你,上帝保佑。

最佳答案

系统变量 SY-DBCNT 应该给你选择的行数,但只有在选择结束之后。

SELECT-ENDSELECT 的替代方法是使用 SELECT INTO TABLE 将所有行一次选择到一个内部表中(前提是您没有一次选择太多!)。

例如:

data: lt_t000 type table of t000.

select * from t000 into table lt_t000.

这将从该表中一次性选择所有内容到内部表中。所以你可以做的是声明一个内部表,其中包含当前在你的 INTO 子句中的所有字段,然后为你的内部表指定 INTO TABLE。

SELECT 执行后,SY-DBCNT 将包含所选行的数量。

这是一个完整的示例,围绕您问题中的 SELECT 语句构建,我还没有检查它的完整性,所以我希望它有效!

tables: spfli.

select-options: s_carrid for spfli-carrid.

* Definition of the line/structure
data: begin of ls_dat,
carrid type s_carr_id,
carrname type s_carrname,
planetype type s_planetye,
fldate type s_date,
price type s_price,
cityfrom type s_from_cit,
cityto type s_to_city,
end of ls_dat.
* Definition of the table:
data: lt_dat like table of ls_dat.

* Select data
select spfli~carrid scarr~carrname sflight~planetype sflight~fldate sflight~price spfli~cityfrom spfli~cityto
into table lt_dat
from spfli
inner join sflight
on spfli~carrid = sflight~carrid and spfli~connid = sflight~connid
inner join scarr
on scarr~carrid = spfli~carrid
where spfli~carrid = s_carrid-low.

* Output data
write: 'Total records selected', sy-dbcnt.
loop at lt_dat into ls_dat.
write: / ls_dat-carrid, ls_dat-carrname, ls_dat-planetype, ls_dat-fldate, ls_dat-price, ls_dat-cityfrom, ls_dat-cityto.
endloop.

注意:报表(类型 1)程序仍然支持使用标题行声明内部表以实现向后兼容性的概念,但不鼓励这样做!希望它有效!

关于abap - 如何获取数据库表的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7500574/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com