ABAP中SELECT语句横向求和?(已解决)

[复制链接]
查看11 | 回复9 | 2018-7-10 16:19:05 | 显示全部楼层 |阅读模式
ABAP中SELECT语句横向求和?
如在ORACLE中:
SELECT ( A + B ) AS C FROM TABLENAME .
[ 本帖最后由 dingfengbo 于 2010-12-22 14:09 编辑 ]
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
从表中选出来A、B放到内表中,在内表中再处理嘛!
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
原帖由 houbao408 于 2010-12-17 17:43 发表
从表中选出来A、B放到内表中,在内表中再处理嘛!

是啊,为什么非要一步到位呢?迂回,迂回嘛
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
一步到位也是可以的,你可以放弃OPEN SQL,改用Native SQL进行处理。不过,这个就好像把SELECT INTO 改成SELECT ... ENESELECT一样。
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
那如何在ABAP中使用Native SQL语句?谢谢。
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
其实 多步反而性能会更好
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
为什么这样说?如何理解?
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
EXEC SQL PERFORMING AppendSqlData.
SELECT GJAHR, HKONT, SUM(DECODE(SHKZG, 'S',DMBTR,-DMBTR))
FROM BSIS
INTO :IT_DATA-GJAHR,
:IT_DATA-HKONT,
:IT_DATA-DMBTR
WHERE BLART = :L_STR
AND BUKRS = :'1000'
AND GJAHR = :2008
AND MONAT = :01
GROUP BY GJAHR, HKONT
ORDER BY GJAHR, HKONT
ENDEXEC.
*----------------------------------------------------------------------*
* Native SQL只能逐笔处理数据,所以需要逐笔添加数据到内表
*----------------------------------------------------------------------*
FORM AppendSqlData.
APPEND IT_DATA.
ENDFORM.
虽然在SQL里干什么都行,就是逐笔从数据库复制数据到内表,对于只查询行项目来说,性能很差。如果你要做求和之类的统计,那还可以。
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
好的,谢谢。
回复

使用道具 举报

千问 | 2018-7-10 16:19:05 | 显示全部楼层
取出来 放到工作去
迂回战术是最有效的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行