# 関連レコードの項目を条件付きで集計について

**URL:** <https://community.cybozu.dev/t/topic/3163>\
**Category:** kintone 開発相談\
**Created:** [2018 年 6 月 26 日午前 8:14 UTC](https://community.cybozu.dev/t/topic/3163 "2018-06-26T08:14:28Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account714](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account714](https://community.cybozu.dev/u/Legacy_Account714)\
**Post date:** [2018 年 6 月 26 日午前 8:14 UTC](https://community.cybozu.dev/t/topic/3163/1 "2018-06-26T08:14:28Z")

</div>

いつも大変お世話になっております。

[関連レコードの項目を条件付きで集計](https://community.cybozu.dev/hc/ja/articles/203030394) を

①kintone.api()を用いた実装に変え ②小計を数値フィールドに登録するようにしたいですが、小計を求めるコードを書けず躓いております。コードのアドバイスいただけますでしょうか？よろしくお願い致します。

(function() {  
“use strict”;

```
//レコードのsubmit時に適用する
var events = ['app.record.create.submit', 'app.record.edit.submit']
kintone.events.on(events, function(event) {
var record = event.record;

```

var amount = 0;  
for (var i = 0; i \< records.length; i++) {  
amount = amount + parseFloat(records[i].数値.value);  
}  
var related = kintone.app.getRelatedRecordsTargetAppId(‘関連レコード一覧’);

return kintone.api(kintone.api.url(‘/k/v1/records’, true), “GET”, {  
app: related,

query: ‘顧客情報レコード番号="’ + client\_rid +‘" and ドロップダウン not in (“受注”)’ +’ limit 100 offset ’ + offset;  
}).then(function(res) {  
record[“小計”].value =amount;  
return event;  
});

});  
})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2018 年 6 月 28 日午前 2:04 UTC](https://community.cybozu.dev/t/topic/3163/2 "2018-06-28T02:04:29Z")

</div>

サラ様

お世話になっております。 cstapの江田と申します。

下記のようなコードになるかと思います。

ただし、サンプルコードでは取得できるレコード数の上限がありませんが、下記のコードでは500件までとなります。 kintone.api()でも全件取得は実装できますが、大量のレコードを扱う場合は[kintone Utility Library for JavaScript](https://community.cybozu.dev/hc/ja/articles/115000333223)を用いると便利です。

```
(function(){"use strict";//レコードのsubmit時に適用するvarevents=['app.record.create.submit','app.record.edit.submit']kintone.events.on(events,function(event){varrecord=event.record;varclient\_rid=event.recordId;varrelated=kintone.app.getRelatedRecordsTargetAppId('関連レコード一覧');returnkintone.api(kintone.api.url('/k/v1/records',true),"GET",{app:related,query:'顧客情報レコード番号="'+client\_rid+'" and ドロップダウン not in ("受注") limit 500';}).then(function(res){varamount=0;varrecords=res.records;for(vari=0;i\<records.length;i++){amount=amount+parseFloat(records[i].数値.value);}record["小計"].value=amount;returnevent;});});})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account714](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account714](https://community.cybozu.dev/u/Legacy_Account714)\
**Post date:** [2018 年 6 月 29 日午前 5:22 UTC](https://community.cybozu.dev/t/topic/3163/3 "2018-06-29T05:22:33Z")

</div>

**[江田篤史](https://community.cybozu.dev/hc/ja/profiles/5826575706-%E6%B1%9F%E7%94%B0%E7%AF%A4%E5%8F%B2)様**

**お世話になっております。**

**とても助かりました。勉強になります。本当にありがとうございました。**
