dbt Service reviews marketplace

Settlement Detail

Settlement Detail model for service reviews marketplace.

inferred

Blocks

settlement_detail.sql · 78 lines
inferred
-- models/settlement_detail.sql
{{ config(materialized='view') }}

SELECT
srm_issue.redeem_location_id AS location_id
,srm_issue.issue_location_id AS interaction_location_id
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * -1
      ELSE 0
    END AS issuances
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * srm_issue.redeem_conversion_rate * -1
      ELSE 0
    END AS converted_issuances
, 0 AS redemptions
, 0 AS converted_redemptions
, srm_issue.redeem_amount AS issuance_amount
, srm_issue.redeem_date AS redeem_date
, srm_issue.settlement_header_id AS settlement_header_id
, srm_issue.currency_id as currency_id
, srm_issue.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_issue.issue_location_id = srm_issue.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_issue
     inner join rpt_settlement_header sh on srm_issue.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
UNION
SELECT
srm_redemp.issue_location_id AS location_id
,srm_redemp.redeem_location_id AS interaction_location_id
, 0 AS issuances
, 0 AS converted_issuances
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount
      ELSE 0
    END AS redemptions
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount * srm_redemp.redeem_conversion_rate
      ELSE 0
    END AS converted_redemptions
, srm_redemp.redeem_amount AS issuance_amount
, srm_redemp.redeem_date AS redeem_date
, srm_redemp.settlement_header_id AS settlement_header_id
, srm_redemp.currency_id as currency_id
, srm_redemp.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_redemp.issue_location_id = srm_redemp.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_redemp
     inner join rpt_settlement_header sh on srm_redemp.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id

# models/schema.yml
version: 2

models:
  - name: settlement_detail
    columns:
      - name: location_id
        tests:
          - unique
          - not_null
      - name: interaction_location_id
      - name: same_location
      - name: issuances
      - name: redemptions
      - name: converted_redemptions
      - name: settlement_header_id
      - name: currency_id
      - name: conversion_rate
      - name: primary_currency_id

Assumptions

  • materialized='view' is the default; no persist hint found.
  • schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
settlement_detail.sql · 55 lines
source-preserved validation: parses
SELECT
srm_issue.redeem_location_id AS location_id
,srm_issue.issue_location_id AS interaction_location_id
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * -1
      ELSE 0
    END AS issuances
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * srm_issue.redeem_conversion_rate * -1
      ELSE 0
    END AS converted_issuances
, 0 AS redemptions
, 0 AS converted_redemptions
, srm_issue.redeem_amount AS issuance_amount
, srm_issue.redeem_date AS redeem_date
, srm_issue.settlement_header_id AS settlement_header_id
, srm_issue.currency_id as currency_id
, srm_issue.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_issue.issue_location_id = srm_issue.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_issue
     inner join rpt_settlement_header sh on srm_issue.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
UNION
SELECT
srm_redemp.issue_location_id AS location_id
,srm_redemp.redeem_location_id AS interaction_location_id
, 0 AS issuances
, 0 AS converted_issuances
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount
      ELSE 0
    END AS redemptions
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount * srm_redemp.redeem_conversion_rate
      ELSE 0
    END AS converted_redemptions
, srm_redemp.redeem_amount AS issuance_amount
, srm_redemp.redeem_date AS redeem_date
, srm_redemp.settlement_header_id AS settlement_header_id
, srm_redemp.currency_id as currency_id
, srm_redemp.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_redemp.issue_location_id = srm_redemp.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_redemp
     inner join rpt_settlement_header sh on srm_redemp.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
settlement_detail.view.lkml · 133 lines
inferred
view: settlement_detail {
  derived_table: {
    sql: SELECT
srm_issue.redeem_location_id AS location_id
,srm_issue.issue_location_id AS interaction_location_id
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * -1
      ELSE 0
    END AS issuances
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * srm_issue.redeem_conversion_rate * -1
      ELSE 0
    END AS converted_issuances
, 0 AS redemptions
, 0 AS converted_redemptions
, srm_issue.redeem_amount AS issuance_amount
, srm_issue.redeem_date AS redeem_date
, srm_issue.settlement_header_id AS settlement_header_id
, srm_issue.currency_id as currency_id
, srm_issue.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_issue.issue_location_id = srm_issue.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_issue
     inner join rpt_settlement_header sh on srm_issue.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
UNION
SELECT
srm_redemp.issue_location_id AS location_id
,srm_redemp.redeem_location_id AS interaction_location_id
, 0 AS issuances
, 0 AS converted_issuances
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount
      ELSE 0
    END AS redemptions
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount * srm_redemp.redeem_conversion_rate
      ELSE 0
    END AS converted_redemptions
, srm_redemp.redeem_amount AS issuance_amount
, srm_redemp.redeem_date AS redeem_date
, srm_redemp.settlement_header_id AS settlement_header_id
, srm_redemp.currency_id as currency_id
, srm_redemp.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_redemp.issue_location_id = srm_redemp.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_redemp
     inner join rpt_settlement_header sh on srm_redemp.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id ;;
  }

  dimension: location_id {
    type: int
    primary_key: yes
  }

  dimension: interaction_location_id {
    type: int
    hidden: yes
  }

  dimension: same_location {
  }

  dimension: issuances {
  }

  dimension: redemptions {
  }

  dimension: converted_redemptions {
  }

  dimension: settlement_header_id {
  }

  dimension: currency_id {
  }

  dimension: conversion_rate {
  }

  dimension: primary_currency_id {
  }

  dimension_group: redeem {
    type: time
    timeframes: [time, date, week, month]
    sql: ${TABLE}.redeem_date ;;
  }

  measure: count {
    type: count_distinct
  }

  measure: total_issuances {
    type: sum
    sql: issuances ;;
  }

  measure: total_redemptions {
    type: sum
    sql: redemptions ;;
  }

  measure: total_converted_issuances {
    type: sum
    sql: converted_issuances ;;
  }

  measure: total_converted_redemptions {
    type: sum
    sql: converted_redemptions ;;
  }

  measure: total_amount {
    type: number
    sql: ${total_issuances} + ${total_redemptions} ;;
  }

  measure: total_converted_amount {
    type: number
    sql: ${total_converted_issuances} + ${total_converted_redemptions} ;;
  }
}
settlement_detail.view.lookml · 100 lines
source-preserved
- view: settlement_detail
  derived_table:
    sql: SELECT
srm_issue.redeem_location_id AS location_id
,srm_issue.issue_location_id AS interaction_location_id
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * -1
      ELSE 0
    END AS issuances
,    CASE
      WHEN srm_issue.issue_location_id <> srm_issue.redeem_location_id
      THEN srm_issue.redeem_amount * srm_issue.redeem_conversion_rate * -1
      ELSE 0
    END AS converted_issuances
, 0 AS redemptions
, 0 AS converted_redemptions
, srm_issue.redeem_amount AS issuance_amount
, srm_issue.redeem_date AS redeem_date
, srm_issue.settlement_header_id AS settlement_header_id
, srm_issue.currency_id as currency_id
, srm_issue.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_issue.issue_location_id = srm_issue.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_issue
     inner join rpt_settlement_header sh on srm_issue.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
UNION
SELECT
srm_redemp.issue_location_id AS location_id
,srm_redemp.redeem_location_id AS interaction_location_id
, 0 AS issuances
, 0 AS converted_issuances
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount
      ELSE 0
    END AS redemptions
,   CASE
      WHEN srm_redemp.issue_location_id <> srm_redemp.redeem_location_id
      THEN srm_redemp.redeem_amount * srm_redemp.redeem_conversion_rate
      ELSE 0
    END AS converted_redemptions
, srm_redemp.redeem_amount AS issuance_amount
, srm_redemp.redeem_date AS redeem_date
, srm_redemp.settlement_header_id AS settlement_header_id
, srm_redemp.currency_id as currency_id
, srm_redemp.redeem_conversion_rate as conversion_rate
, sc.primary_currency_id as primary_currency_id
,  CASE
    WHEN srm_redemp.issue_location_id = srm_redemp.redeem_location_id THEN TRUE
    ELSE FALSE END AS same_location
FROM rpt_settlement_redemption_map AS srm_redemp
     inner join rpt_settlement_header sh on srm_redemp.settlement_header_id = sh.settlement_header_id
     inner join rpt_settlement_config sc on sh.settlement_config_id = sc.settlement_config_id
  fields:
  - dimension: location_id
    type: int
    primary_key: true
  - dimension: interaction_location_id
    type: int
    hidden: true
  - dimension: same_location
  - dimension: issuances
  - dimension: redemptions
  - dimension: converted_redemptions
  - dimension: settlement_header_id
  - dimension: currency_id
  - dimension: conversion_rate
  - dimension: primary_currency_id
  - dimension_group: redeem
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    sql: ${TABLE}.redeem_date
  - measure: count
    type: count_distinct
  - measure: total_issuances
    type: sum
    sql: issuances
  - measure: total_redemptions
    type: sum
    sql: redemptions
  - measure: total_converted_issuances
    type: sum
    sql: converted_issuances
  - measure: total_converted_redemptions
    type: sum
    sql: converted_redemptions
  - measure: total_amount
    type: number
    sql: ${total_issuances} + ${total_redemptions}
  - measure: total_converted_amount
    type: number
    sql: ${total_converted_issuances} + ${total_converted_redemptions}

Contents

  • settlement_detail.sql
  • settlement_detail.sql
  • settlement_detail.view.lkml
  • settlement_detail.view.lookml