# 条件によりレコードをマージする

**URL:** https://community.cybozu.dev/t/topic/2648
**Category:** kintone 開発相談
**Created:** [2016 年 8 月 19 日午前 6:57 UTC](https://community.cybozu.dev/t/topic/2648 "2016-08-19T06:57:11Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 8 月 19 日午前 6:57 UTC](https://community.cybozu.dev/t/topic/2648/1 "2016-08-19T06:57:11Z")

</div>

横山と申します。

kintoneアプリで条件によりレコードをマージする処理を検討しています。

単一レコードです

マージするキー：地区コード＋確定年月＋用途コード が同じ値のレコードを合わせます

その際、数値項目は、集計します。

マージ結果は、ｃｓｖで出力、データ一覧を想定しています

jscriptで作成を検討中です。どなたかご教示お願いします。

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account513](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account513](https://community.cybozu.dev/u/Legacy_Account513)
#### Post date: [2016 年 8 月 22 日午前 2:43 UTC](https://community.cybozu.dev/t/topic/2648/2 "2016-08-22T02:43:21Z")

</div>

横山さん

cstap武井です。

&nbsp;

私が考える処理フローは以下です。

1. 一覧画面などにcsv出力ボタンを作成する。
2. 1.のイベントの中で、当該アプリのレコードを全件検索する。
3. ループでマージするキーが一致するもののみ数値項目を集計する。
4. 集計したものを[こちらの記事](https://community.cybozu.dev/hc/ja/articles/203605844)などを参考にcsv出力する。

といった辺りではないでしょうか。

やり方は色々あると思います。

&nbsp;

他にも、集計結果をデータとして持つことを前提に、

レコード保存時に当該レコードとマージキーが一致するものを毎回マージし、

「kintone標準の絞り込み機能→標準のcsv出力機能で出力」といった方法でもイケそうな気がします。

（こちらの方が楽かもしれません）

---

<div class="post-metadata">

### Author: ![Legacy\_Account1491](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1491](https://community.cybozu.dev/u/Legacy_Account1491)
#### Post date: [2016 年 8 月 22 日午前 4:54 UTC](https://community.cybozu.dev/t/topic/2648/3 "2016-08-22T04:54:18Z")

</div>

横山様

１）集計元レコードと集計後レコードを別アプリに保持するか

２）集計後レコードは、レコードとして保持する必要があるか

この２点あたりがポイントになるかと思います。

１）に関しては、集計元レコードと集計後レコードを同一アプリで保持した場合、集計元レコードの記録がなくなってしまう、あるいは、構成としてわかりにくくなってしまう為、個人的には別アプリに保持したほうが良いかなと感じます。

別アプリで保持する場合は、集計元レコードの保存後イベント(JavaScript)で、別アプリに該当条件でマージした値を毎回集計して、書き込む形になると思います。

２）に関しては、目的がCSV出力とデータ一覧だけであれば、レコードとして保持しなくても、kintoneの標準集計機能で、毎回表示するだけでも良いかもしれません。

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 8 月 22 日午前 5:06 UTC](https://community.cybozu.dev/t/topic/2648/4 "2016-08-22T05:06:05Z")

</div>

武井様

回答有難う御座います。

サンプルコードがあれば、ご教示お願いします。

jsは、始めたばかりで初心者です。 お手数をお掛けしますが、宜しくお願い致します。

当該アプリのレコードを全件検索する→ループでマージするキーが一致するもののみ数値項目を集計する

のサンプルは、御座いますか。

横山

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 8 月 22 日午前 5:24 UTC](https://community.cybozu.dev/t/topic/2648/5 "2016-08-22T05:24:21Z")

</div>

松村様

連絡有難う御座います

別アプリにデータを保存するサンプルは、御座いますでしょうか。

話には、聞いておりますが、初心者で有ることでイメージが見えないので、アドバイス戴けると助かります。

&nbsp;

横山

---

<div class="post-metadata">

### Author: ![Legacy\_Account1491](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1491](https://community.cybozu.dev/u/Legacy_Account1491)
#### Post date: [2016 年 8 月 22 日午前 7:16 UTC](https://community.cybozu.dev/t/topic/2648/6 "2016-08-22T07:16:56Z")

</div>

横山様

一連の流れのサンプルは私の方にはないのですが、順を追っていくと下記の様な

順番となると思います。個別のURLには個別サンプルソースがありますので、それらを

組み合わせて、試行錯誤することになるかと。

１．JavaScript側 レコード保存成功後イベント で、

新規 [https://cybozudev.zendesk.com/hc/ja/articles/201941984#success](https://cybozudev.zendesk.com/hc/ja/articles/201941984#success)

編集 [https://cybozudev.zendesk.com/hc/ja/articles/202166270#success](https://cybozudev.zendesk.com/hc/ja/articles/202166270#success)

&nbsp;

２．該当条件に合致するレコードをAPIで取得して、

レコードの一括取得（クエリで条件を指定）

[https://cybozudev.zendesk.com/hc/ja/articles/202331474#step2](https://cybozudev.zendesk.com/hc/ja/articles/202331474#step2)

&nbsp;

３．合計した結果を、別アプリにAPIでデータ保存する。

新規レコードの場合

[https://cybozudev.zendesk.com/hc/ja/articles/202166160#step1](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step1)

既存レコードの場合

[https://cybozudev.zendesk.com/hc/ja/articles/201941784#step1](https://cybozudev.zendesk.com/hc/ja/articles/201941784#step1)

&nbsp;

こまごましており恐縮ですが、このようなイメージです。

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 2 日午前 1:07 UTC](https://community.cybozu.dev/t/topic/2648/7 "2016-09-02T01:07:52Z")

</div>

横山です。

手順のご案内有難う御座います。

このコードは、JSで作成すれば宜しいでしょうか

ご教示お願い致します。

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 2 日午前 1:09 UTC](https://community.cybozu.dev/t/topic/2648/8 "2016-09-02T01:09:24Z")

</div>

横山です。

&nbsp;

松村様 手順のご案内有難う御座います。

このコードは、JSで作成すれば、宜しいでしょうか

ご教示お願いします。

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account1491](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1491](https://community.cybozu.dev/u/Legacy_Account1491)
#### Post date: [2016 年 9 月 2 日午前 2:16 UTC](https://community.cybozu.dev/t/topic/2648/9 "2016-09-02T02:16:24Z")

</div>

横山様

はい。JSでの作成となります。

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 2 日午前 3:40 UTC](https://community.cybozu.dev/t/topic/2648/10 "2016-09-02T03:40:53Z")

</div>

松村様

お疲れ様です。

1.は、レコード表示イベント又は、ボタンで指示したいのですが、サンプルは、ありますでしょうか

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 2 日午前 6:28 UTC](https://community.cybozu.dev/t/topic/2648/11 "2016-09-02T06:28:40Z")

</div>

松村様

&nbsp;

お世話になります

REST APIの原則は、元アプリの追加・更新１レコードに対して、保存先アプリの１レコードのみ

の処理でしょうか。 これだと処理上全てのレコードを更新操作しなければならず、現実的では、ありません。

連続処理する方法は、前の問合せの通りですが、ありますでしょうか

ご教示をお願いします。 レコード番号以外を一括更新キーにしています

尚 別アプリは、レコード削除後常にレコード追加のみで考えています。

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 2 日午前 8:15 UTC](https://community.cybozu.dev/t/topic/2648/12 "2016-09-02T08:15:13Z")

</div>

村松様

お世話になります。

別アプリにレコードを登録する フィールド は、ルックアップ、数値以外の制限がありました。

なにか回避方法が有れば、ご教示お願いします。

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account1491](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1491](https://community.cybozu.dev/u/Legacy_Account1491)
#### Post date: [2016 年 9 月 5 日午前 11:13 UTC](https://community.cybozu.dev/t/topic/2648/13 "2016-09-05T11:13:26Z")

</div>

＞ **hsy横山** さん

＞REST APIの原則は、元アプリの追加・更新１レコードに対して、保存先アプリの１レコードのみ

＞の処理でしょうか。 これだと処理上全てのレコードを更新操作しなければならず、現実的では、ありません。

＞連続処理する方法は、前の問合せの通りですが、ありますでしょうか

＞ご教示をお願いします。 レコード番号以外を一括更新キーにしています

＞尚 別アプリは、レコード削除後常にレコード追加のみで考えています。

元アプリ１レコードの追加更新時に、保存先アプリが１レコードしか扱えないという制限はありません。

元アプリの追加・更新はあくまでイベントとしてとらえればよいと思います。

元アプリのイベント内にて、保存先アプリの複数レコードの参照、更新、挿入が可能です。

&nbsp;

＞別アプリにレコードを登録する フィールド は、ルックアップ、数値以外の制限がありました。

＞なにか回避方法が有れば、ご教示お願いします。

ルックアップ、数値 も可能だったと思います。

＞1.は、レコード表示イベント又は、ボタンで指示したいのですが、サンプルは、ありますでしょうか

[https://cybozudev.zendesk.com/hc/ja/articles/201952870-%E7%AC%AC3%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%82%82%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%A8%AD%E7%BD%AE%E3%81%97%E3%82%88%E3%81%86-](https://cybozudev.zendesk.com/hc/ja/articles/201952870-%E7%AC%AC3%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%82%82%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%A8%AD%E7%BD%AE%E3%81%97%E3%82%88%E3%81%86-)

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account496](https://avatars.discourse-cdn.com/v4/letter/l/d2c977/32.png) [@Legacy\_Account496](https://community.cybozu.dev/u/Legacy_Account496)
#### Post date: [2016 年 9 月 6 日午前 9:18 UTC](https://community.cybozu.dev/t/topic/2648/14 "2016-09-06T09:18:52Z")

</div>

松村様

回答有難う御座います

確認してみます。

&nbsp;

&nbsp;

---

<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: [2025 年 5 月 28 日午前 7:16 UTC](https://community.cybozu.dev/t/topic/2648/15 "2025-05-28T07:16:56Z")

</div>

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