簡體   English   中英

從 CDS 獲取不同鍵字段值的計數

[英]Get count of distinct key field values from CDS

我想問一下是否可以使用 ABAP 動態獲取不同字段的計數。

我們的 CDS 中的 key 有 9 個字段,數量很多,但由於歷史決定,無法拆分。 我需要的是如下代碼:

select count(distinct (lv_requested_elements)) from CDS_VIEW; 

或者

select count(*) from (select distinct lv_requested_elements from CDS_VIEW);

我知道可以將 select 讀入 memory 並獲得sy-dbcnt但我想確定沒有其他選擇。

我假設最簡單直接的方法是將最小字段讀入 memory 然后按分組(區分)行計數:

DATA(fields) = ` BLART, BLDAT, BUDAT`.

DATA: lt_count TYPE TABLE OF string.
SELECT (fields(6))
  INTO TABLE @lt_count
  FROM ('BKPF')
 GROUP BY (fields).

DATA(count) = sy-dbcnt.

前面提到的CTE使用相同的 memory 讀取,因此您不會獲得任何性能提升:

公用表表達式創建一個臨時表格結果集,可在 WITH 語句執行期間訪問

如果您要經常計算此組合鍵,我建議創建消費或嵌套 CDS 視圖,它會即時執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM