Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

特定のテーブルから別のテーブルにない値を返す

公開日: Jul 20, 2023
タスク
Tableau Desktop で特定の日付範囲の特定のテーブルに含まれるが、別のテーブルに含まれないアカウント値を返す方法。

SQL を使用すると、次のクエリで目的の結果が達成されます。
SELECT AccountName FROM Accounts
WHERE AccountId NOT IN (SELECT AccountId FROM LoggingTable WHERE Date > 2016-08-01)

 
ステップ
特定の日付範囲で 2 番目のテーブルに存在しないアカウントを返すには、左外部結合を使用して 2 つのテーブルを結合し、ビューを NULL 値と指定した日付範囲でフィルターします。添付のパッケージド ワークブックと Excel ファイルを使用し、以下のステップに従って、目的の結果を達成します。
  1. 2 つのデータ テーブル間に結合を作成します。
    1. Tableau Desktop で Account Table Extract (アカウント テーブル抽出) に接続します。顧客/アカウントのリストをテーブルに取り込みます
    2. [追加] を選択して、2 番目のデータ ソースを取り込み、Logging Table Extract (ロギング テーブル抽出) を選択します。使用状況情報を含むテーブルをビューにドラッグします。左外部結合とリンク フィールドとして "AccountId" を使用して 2 つのテーブルを結合します。
    3. 左外部結合では、Account Table Extract (アカウント テーブル抽出) からのすべての "AccountId" 値を返し、一致するアカウントがない場合は、Logging Table Extract (ロギング テーブル抽出) からの "AccountId" 行に Null 値を入力します。
  2. 元の Logging Table Extract (ロギング テーブル抽出) テーブルに、過去 3 か月間の行しか含まれていない場合、このステップは必要ありません。そうでない場合は、"8/1/2016" より前のデータがある可能性があるが、それらの 3 か月間に対するデータがない "AccountId" 値を返すようにフィルターする必要もあります。
    1. シート 1 に移動します。
    2. 新規計算フィールドを作成します。フィールドに "!Filter" と名前を付け、次の式を挿入して [OK] をクリックします。
      IF ISNULL([AccountId (LoggingTable)]) OR [Date] < DATEADD('month',-3,TODAY()) THEN "Show" ELSE "Hide" END
    3. 上の式は、[フィルター] シェルフに配置された場合に、"AccountId (Logging Table)" に Null 値が入っているか、今日の日付を基準として 3 か月未満の日付値がある "Account Name (アカウント名)" 値を返します。
  3. ビューを作成します。
    1. "Account Name (アカウント名)" を [行] にドラッグします。
    2. "!Filter" を [フィルター] にドラッグし、"表示" を選択します。
または、2020.3 以降にアップグレードすると、データ接続 UI で関係を同様に定義でき、自動的に選択されます。 
ナレッジ記事番号

001453725

添付ファイル

__Logging.xlsx

8 KB

Accounts Example.twbx

19 KB

__Accounts.xlsx

8 KB

 
読み込み中
Salesforce Help | Article