当前位置: 首页 > 知识库问答 >
问题:

SELECT with OR condition的错误结果

郭子航
2023-03-14

结果似乎是程序只在AUART='yi01'的情况下获得所有销售订单(从vbak表),而实际上我获得的是1.699.698个销售订单。因此,它忽略了selectvtweg='z1',spart='z1',kunnr='023001039',erdat=>'01.09.2017'中的其他参数,对于这些参数,我应该只得到77个结果。

TYPES: BEGIN OF lw_odv_vbak,
        vbeln TYPE vbak-vbeln,
        vkorg TYPE vbak-vkorg,
        vtweg TYPE vbak-vtweg,
        spart TYPE vbak-spart,
        netwr TYPE vbak-netwr,
        kunnr TYPE vbak-kunnr,
        erdat type vbak-erdat,
      END OF lw_odv_vbak.


DATA: it_odv_vbak TYPE STANDARD TABLE OF lw_odv_vbak INITIAL SIZE 0.



SELECT vbeln
     FROM vbak
      INTO TABLE it_odv_vbak
      WHERE vkorg = 'Z326'
      AND vtweg = 'Z1'
      AND spart = 'Z1'
      AND kunnr = '0230001039'
      AND auart = 'YC01' OR
          auart = 'YI01'
        AND erdat GT '01.09.2017'.

非常感谢你的帮助

共有1个答案

姚俊材
2023-03-14

您可以做两件事:1)使用圆括号或2)将日期格式更改为“20170901”。在db中,日期像yyyymmdd一样存储。

SELECT vbeln
 FROM vbak
  INTO TABLE it_odv_vbak
  WHERE vkorg = 'Z326'
  AND vtweg = 'Z1'
  AND spart = 'Z1'
  AND kunnr = '0230001039'
  AND ( auart = 'YC01' OR auart = 'YI01') 
  AND erdat GT '20170901'.
 类似资料:
  • 导入java.util.Scanner;公共类GroupActivity{公共静态void main()

  • 我使用Spring Redis和@Cacheable注释来实现两种方法。当我调用一个方法时,我会得到另一个方法的缓存结果。 当我使用@Cachebale注释为每个方法配置不同的缓存时,怎么可能从错误的缓存中得到结果? 安装:Spring版本4.1.6。Redis data 1.5和Redis client 2.7.0。 示例代码:

  • 我试图从我的数据库中得到一些数据,但我不会得到正确的结果。 我的方法: 所以应该有一个确切的结果,但我从控制台得到的全部是:日期的范围是从今天(6月12日-2周) CEST 2012年Tue Jun 12 14:49:11 2012年东部时间5月30日星期三14:49:11

  • 我正在使用JAXB/MOXY解组包含约50个此类对象的XML文件: BR

  • 您好,我正试图通过基于日期查询“where”来创建一个RESTAPI。我连接postgresql。 我有一个这样的实体 @Entity@Table(name="设备")公共类DeviceEntity{ 这是我的疑问: @存储库公共接口设备存储库扩展了分页和排序存储库{ 运行和测试url后,我得到错误"类型int的坏值:8962101012749336481"

  • 问题内容: 根据Wolfram Mathematica: cos(50) = 0.6427876096865394 ; 但是这段Java代码: 给出 0.9649660284921133 。 有什么问题吗? 问题答案: 期望参数以弧度为单位。这将返回您需要的结果: