ABAP选择计数> 1的字段

问题描述 投票:2回答:1

有没有办法从BSID中选择一些字段,其中BUKRS-KUNNR-DMBTR的组合大于1.我认为下面的选择将起作用,但事实并非如此。

SELECT bukrs kunnr dmbtr COUNT(*)
      INTO TABLE git_double
    FROM bsid
    WHERE bukrs = '1000' AND
          blart = 'WP'   AND
          budat IN s_budat AND
          gjahr IN s_gjahr AND
          count(*) > 1
    GROUP BY bukrs kunnr dmbtr.

有没有办法在1个选择中做到这一点? 谢谢

sql sap abap
1个回答
4
投票

aggregate functions这样的COUNT的选择可以在HAVING条款中完成

  SELECT bukrs kunnr dmbtr COUNT(*)
    INTO TABLE git_double
      FROM bsid
      WHERE bukrs = '1000' AND
            blart = 'WP'   AND
            budat IN s_budat AND
            gjahr IN s_gjahr
      GROUP BY bukrs kunnr dmbtr
      HAVING COUNT(*) > 1.        " <==== HAVING after GROUP BY

有关信息,请参阅ABAP 7.40 SP05,您也可以使用host variables编写它:

  SELECT bukrs, kunnr, dmbtr, COUNT(*) AS accd_count
    INTO TABLE @DATA(git_double)
      FROM bsid
      WHERE bukrs = '1000' AND
            blart = 'WP'   AND
            budat IN @s_budat AND
            gjahr IN @s_gjahr
      GROUP BY bukrs, kunnr, dmbtr
      HAVING COUNT(*) > 1.
© www.soinside.com 2019 - 2024. All rights reserved.