2つの一意のレコードのセットを比較し、欠落しているレコードのIDを取得します

ビニエス・アニルーダ

アカウントには、アカウントとのマスター/詳細関係にあるMonthlyとYearlyの2つのオブジェクトがあります。

Monthlyには、毎月キャプチャされたレコードがあります。たとえば、USA、GBR、IND ETC

年に一度の記録は、米国、GBR、INDなどをキャプチャしました

DBから取得している年次レコードが一致しておらず、たとえば、いくつかの国が追加されていることを確認しました。

月次は-USA、GBR、IND年次は-USA、GBR、INDですが、私たちは-USA、GBR、IND、AUSを持っていますが、これは間違っています。

AUSを含むレコードを見つけて、その情報を削除または再送信する必要があります。

月次および年次の一意のフィールドは

Distributor__c =アカウント付きのマスター詳細関係の出荷

AC_Sponsor_Key__c =両方のオブジェクトで一意である国+ディストリビューターID

この状況に取り組む方法についての解決策を手伝ってください

アイクリーム

SalesforceとPostgresのどちらでソリューションを探しているかを指定していません;)

では、「年次」(おそらく「年次」と呼ばれるべきです)関連リストには、「月次」よりも多くのレコードがありますか?

アカウントに「GBR; IND; USA」のような値を含む2つのテキストフィールドを設定し、2つを単純に比較することができます(最良の結果が得られるように並べ替えられています)。トリガーを設定することも、ソースシステムから直接入力することもできます。

それが失敗した場合-これはあなたにいくつかのアイデアを与えるはずです。結果セットを制限するには、アカウントにフィルターを設定する必要があります。または、このコードスニペットからバッチジョブを作成しますか?

List<Account> accs = [SELECT Id, Name
    FROM Account
    WHERE Id IN (SELECT Distributor__c FROM Monthly__c)
        AND Id IN (SELECT Distributor__c FROM Yearly__c)
    ORDER BY Name
    LIMIT 1000];

Set<String> keys = new Set<String>();

for(Monthly__c m : [SELECT AC_Sponsor_Key__c
    FROM Monthly__c
    WHERE Distributor__c IN :accs AND AC_Sponsor_Key__c != null]){
    keys.add(m.AC_Sponsor_Key__c);
}

for(Yearly__c y : [SELECT Id, Distributor__c, AC_Sponsor_Key__c
    FROM Yearly__c
    WHERE Distributor__c IN :accs AND NOT IN :keys
    ORDER BY Distributor__c, AC_Sponsor_Key__c]){
    System.debug(y);
}

あるいは、このようなものを試すこともできます(純粋なSOQL /レポート、Apexなし)。ただし、国ごとに実行する必要があります。

SELECT Id, Name,
    (SELECT Id FROM Yearlys__r WHERE Country__c = 'AUS')
FROM Account
WHERE Id IN (SELECT Distributor__c FROM Yearly__c WHERE Country__c = 'AUS')
AND Id NOT IN (SELECT Distributor__c FROM Monthly__c WHERE Country__c = 'AUS')

SELECT Id, Distributor__c, Distributor__r.Name
FROM Yearly__c
WHERE Country__c = 'AUS'
AND Distributor__c NOT IN (SELECT Distributor__c FROM Monthly__c WHERE Country__c = 'AUS')

今後は、「一致する月次がないため、この国に年次を挿入することはできません」という保護を検討することができます。以前はそれを行うことができましinsert triggerたが、コードフリーのソリューションもあります。VLOOKUP関数と、検証ルールでの使用方法を確認してください。ただしName、月次レコードに一意の一致値が必要であり、そこに何があるのか​​わかりません。役に立たない自動番号がある可能性があります...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

分類Dev

2つのレコードをマージして、一意のIDを作成します

分類Dev

mysqlから一意のレコードを取得します

分類Dev

Entity Frameworkは、いくつかの列の一意の値のセットに基づいて重複レコードをチェックしてから、新しいレコードを追加する必要があります

分類Dev

新しいレコードと既存のレコードの一意のIDを生成する

分類Dev

ActiveRecordを使用して一意のフィールドを持つレコードを取得する

分類Dev

awk を使用して一意のレコード数を取得するには

分類Dev

レコードのサブストリングを取得し、欠落していないか別のテーブルと比較するためのMSAccessクエリ

分類Dev

クエリを実行して、一意の各列IDの3つのレコードのみを取得します

分類Dev

1つのwhileループ内で3つの一意のレコードを取得します

分類Dev

LINQを使用してテキストファイルから一意のレコードを取得します

分類Dev

一意のIDを持つ重複レコードから上位3つのレコードを取得します

分類Dev

SQLServerの一意のレコードを持つテーブルから最小の日付を取得します

分類Dev

フィールドが欠落している場合でも、Crystalレポートにすべてのレコードを一覧表示します

分類Dev

フィールドが欠落している場合でも、Crystalレポートにすべてのレコードを一覧表示します

分類Dev

一意のIDを使用してループコードでサブセットを構築する方法

分類Dev

SQL Serverの一意の日付に基づいてレコードを選択し、その日付のレコード数をカウントします

分類Dev

最初のn文字を比較して一意のレコードを取得するにはどうすればよいですか?

分類Dev

mysqlは2つのテーブル間の一意のレコードをマークします

分類Dev

一意の乱数の2列に5000レコードを生成します

分類Dev

NSDictionary-一意である必要があるキーを選択して一意のレコードを取得します

分類Dev

MySQL-特定の値を含まないすべての一意のレコードを選択します

分類Dev

欠落しているIDのマップIDフィールドの2つのリストを比較するためのラムダ

分類Dev

Eloquent:フォールバックを使用して、一意の列値を持つレコードを取得します

分類Dev

Factory_Girlが一意のレコードを生成していません

分類Dev

SQL を使用して一意のレコードを削除する方法は?

分類Dev

欠落している一意のIDを見つけるためのビット単位のXOR演算子

分類Dev

Java8ストリーム-2つのコレクションをマージして特定のフィールドごとに一意にします

分類Dev

週番号を使用して一意のレコードIDのMYSQLPHPを選択する方法

Related 関連記事

  1. 1

    レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

  2. 2

    2つのレコードをマージして、一意のIDを作成します

  3. 3

    mysqlから一意のレコードを取得します

  4. 4

    Entity Frameworkは、いくつかの列の一意の値のセットに基づいて重複レコードをチェックしてから、新しいレコードを追加する必要があります

  5. 5

    新しいレコードと既存のレコードの一意のIDを生成する

  6. 6

    ActiveRecordを使用して一意のフィールドを持つレコードを取得する

  7. 7

    awk を使用して一意のレコード数を取得するには

  8. 8

    レコードのサブストリングを取得し、欠落していないか別のテーブルと比較するためのMSAccessクエリ

  9. 9

    クエリを実行して、一意の各列IDの3つのレコードのみを取得します

  10. 10

    1つのwhileループ内で3つの一意のレコードを取得します

  11. 11

    LINQを使用してテキストファイルから一意のレコードを取得します

  12. 12

    一意のIDを持つ重複レコードから上位3つのレコードを取得します

  13. 13

    SQLServerの一意のレコードを持つテーブルから最小の日付を取得します

  14. 14

    フィールドが欠落している場合でも、Crystalレポートにすべてのレコードを一覧表示します

  15. 15

    フィールドが欠落している場合でも、Crystalレポートにすべてのレコードを一覧表示します

  16. 16

    一意のIDを使用してループコードでサブセットを構築する方法

  17. 17

    SQL Serverの一意の日付に基づいてレコードを選択し、その日付のレコード数をカウントします

  18. 18

    最初のn文字を比較して一意のレコードを取得するにはどうすればよいですか?

  19. 19

    mysqlは2つのテーブル間の一意のレコードをマークします

  20. 20

    一意の乱数の2列に5000レコードを生成します

  21. 21

    NSDictionary-一意である必要があるキーを選択して一意のレコードを取得します

  22. 22

    MySQL-特定の値を含まないすべての一意のレコードを選択します

  23. 23

    欠落しているIDのマップIDフィールドの2つのリストを比較するためのラムダ

  24. 24

    Eloquent:フォールバックを使用して、一意の列値を持つレコードを取得します

  25. 25

    Factory_Girlが一意のレコードを生成していません

  26. 26

    SQL を使用して一意のレコードを削除する方法は?

  27. 27

    欠落している一意のIDを見つけるためのビット単位のXOR演算子

  28. 28

    Java8ストリーム-2つのコレクションをマージして特定のフィールドごとに一意にします

  29. 29

    週番号を使用して一意のレコードIDのMYSQLPHPを選択する方法

ホットタグ

アーカイブ