# 関連レコードの条件付き集計

**URL:** <https://community.cybozu.dev/t/topic/1598>\
**Category:** kintone 開発相談\
**Created:** [2023 年 5 月 23 日午前 5:46 UTC](https://community.cybozu.dev/t/topic/1598 "2023-05-23T05:46:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2274](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Legacy\_Account2274](https://community.cybozu.dev/u/Legacy_Account2274)\
**Post date:** [2023 年 5 月 23 日午前 5:46 UTC](https://community.cybozu.dev/t/topic/1598/1 "2023-05-23T05:46:03Z")

</div>

他の記事を参考に、下記の通り関連レコードの集計をしております。

```
(function() {
  "use strict";
  kintone.events.on([
  'app.record.create.show', 'app.record.edit.show',
  'app.record.create.submit', 'app.record.edit.submit'
  ], function(event){
    return new kintone.Promise(function(resolve){
      RelatedRecordsFieldManager.prototype.getFieldProperties().then(function(){
        (new RelatedRecordsFieldManager('関連レコード')).getRecords(event.record).then(function(records){
          event.record.売上.value = records.reduce(function(sum, record){
          return sum + Number(record.売上税抜.value);
          }, 0);
          resolve(event);
        });
      });
    });
  });
}());

```

■実現したいこと

関連レコードを取得したのち、文字列フィールド（例：プランＡ、プランＢ）に入力された任意の値に一致する関連レコードのみ集計する場合はどのように表記したらよいかご教示いただけますでしょうか。（文字列フィールドではなくドロップダウンリストでも構いません）

レコードごとに異なる（例：プランA、プランB）値で保存したいので、関連レコード一覧の設定では指定せずに、レコード詳細画面にて指定しそれぞれ保存したいです。

よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1177](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@Legacy\_Account1177](https://community.cybozu.dev/u/Legacy_Account1177)\
**Post date:** [2023 年 5 月 23 日午前 6:08 UTC](https://community.cybozu.dev/t/topic/1598/2 "2023-05-23T06:08:31Z")

</div>

コードの意味が理解できているなら、条件を分けた集計程度は簡単にできるはずです。

江田さまの作られた関連レコード集計をコピペしているだけだと思いますが、良い機会と思ってコード内で使われている[reduceメソッド](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)を学ぶと良いです。これが理解できれば可能です。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2274](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Legacy\_Account2274](https://community.cybozu.dev/u/Legacy_Account2274)\
**Post date:** [2023 年 5 月 24 日午前 8:46 UTC](https://community.cybozu.dev/t/topic/1598/3 "2023-05-24T08:46:44Z")

</div>

[mls-hashimoto](https://community.cybozu.dev/hc/ja/profiles/385013133091-mls-hashimoto)&nbsp;様

コメントありがとうございます。

filter（）を使用し集計値を出しました。不勉強大変失礼いたしました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 9 月 29 日午前 6:11 UTC](https://community.cybozu.dev/t/topic/1598/4 "2023-09-29T06:11:32Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
