首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列间比较的OpenSQL

列间比较的OpenSQL
EN

Stack Overflow用户
提问于 2018-09-08 21:09:15
回答 2查看 538关注 0票数 1

我可以比较OpenSQL中表的列吗?

当前的代码如下:

代码语言:javascript
复制
  SELECT SINGLE menge wemng ebeln ebelp
    INTO (eket-menge,
          eket-wemng,
          eket-ebeln,
          eket-ebelp)
    FROM eket
    WHERE ebeln = ekpo-ebeln
      AND ebelp = ekpo-ebelp.

  IF eket-menge NE eket-wemng.

我希望避免在menge = wemng中撤回行,但这是行不通的:

代码语言:javascript
复制
  SELECT menge wemng ebeln ebelp
    INTO (eket-menge,
          eket-wemng,
          eket-ebeln,
          eket-ebelp)
    FROM eket
    WHERE ebeln = ekpo-ebeln
      AND ebelp = ekpo-ebelp
      AND menge <> wemng.

ABAP认为wemng应该是一个变量。

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-10 09:01:00

在比较WHERE条件下的两列时,应使用列选择器(~)。这是故意的。

ABAPDOCU说:

列选择器 性格~。数据库表(dbtab)的列(col)可以在SELECT语句中通过dbtab~col进行寻址。当访问多个数据库表时,这种类型的寻址是必要的,如果一个列的名称出现在多个不同的数据库表中,或者如果两个列在条件中的比较中被比较,则必须进行。

所以,在你的例子中:

代码语言:javascript
复制
SELECT menge wemng ebeln ebelp
    INTO (eket-menge,
          eket-wemng,
          eket-ebeln,
          eket-ebelp)
    FROM eket
    WHERE ebeln = ekpo-ebeln
      AND ebelp = ekpo-ebelp
      AND menge <> eket~wemng.
...
票数 3
EN

Stack Overflow用户

发布于 2018-09-09 09:22:25

请查看以下查询:

代码语言:javascript
复制
  SELECT menge wemng ebeln ebelp
  INTO (eket-menge,
        eket-wemng,
        eket-ebeln,
        eket-ebelp)
  FROM eket
  WHERE ebeln = ekpo-ebeln
    AND ebelp = ekpo-ebelp
    AND menge <> eket~wemng.

但是在这个时候你会发现错误:

不正确的嵌套:在语句"ENDIF“之前,"SELECT”引入的控制结构必须以"ENDSELECT“结尾。

因此,您应该创建一些内部表来处理这个问题。

代码语言:javascript
复制
  SELECT menge wemng ebeln ebelp
  INTO TABLE lt_eket
  FROM eket
  WHERE ebeln = ekpo-ebeln
    AND ebelp = ekpo-ebelp
    AND menge <> eket~wemng.

或使用

代码语言:javascript
复制
  SELECT SINGLE menge wemng ebeln ebelp
  INTO (eket-menge,
        eket-wemng,
        eket-ebeln,
        eket-ebelp)
  FROM eket
  WHERE ebeln = ekpo-ebeln
    AND ebelp = ekpo-ebelp
    AND menge <> eket~wemng.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52239427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档