Files
dbt_cloud/models/marts/warehouse/dim_shipping__companies.sql
T

155 lines
5.5 KiB
SQL

-- IMPORT
WITH parent_and_sub_companies AS (
SELECT * FROM {{ ref('stg_shipping__parent_and_sub_companies') }}
),
latest_sub_company_billing_addresses AS (
SELECT * FROM {{ ref('int_shpping__latest_sub_company_billing_addresses') }}
),
company_documents AS (
SELECT * FROM {{ ref('stg_shipping__company_documents') }}
),
-- LOGIC
latest_company_documents AS (
SELECT
document_id AS identity_document_id,
parent_company_id AS identity_parent_company_id,
approver_user_id AS identity_approver_user_id,
status AS identity_status,
document_type AS identity_document_type,
identity_number AS identity_identity_number,
approved_datetime AS identity_approved_datetime,
deleted_datetime AS identity_deleted_datetime,
created_datetime AS identity_created_datetime,
updated_datetime AS identity_updated_datetime,
ROW_NUMBER() OVER
(PARTITION BY parent_company_id
ORDER BY created_datetime DESC) AS latest_row_number
FROM company_documents
WHERE
status = 'APPROVED'
QUALIFY
latest_row_number = 1
),
sub_companies_enrich AS (
SELECT
parent_and_sub_companies.parent_company_id,
parent_and_sub_companies.autocount_id,
parent_and_sub_companies.sub_company_id,
parent_and_sub_companies.sub_company_marking_id,
parent_and_sub_companies.status AS sub_company_status,
parent_and_sub_companies.is_credit_term_company,
parent_and_sub_companies.is_migrated_company,
parent_and_sub_companies.parent_company_name,
parent_and_sub_companies.sub_company_name,
parent_and_sub_companies.company_type,
parent_and_sub_companies.business_type,
parent_and_sub_companies.parent_company_created_datetime,
parent_and_sub_companies.parent_company_updated_datetime,
parent_and_sub_companies.sub_company_created_datetime,
parent_and_sub_companies.sub_company_updated_datetime,
latest_sub_company_billing_addresses.sub_company_address_id,
latest_sub_company_billing_addresses.address_reference,
latest_sub_company_billing_addresses.address_line_one,
latest_sub_company_billing_addresses.address_line_two,
latest_sub_company_billing_addresses.district_name,
latest_sub_company_billing_addresses.state_name,
latest_sub_company_billing_addresses.country_name,
latest_sub_company_billing_addresses.postcode,
latest_sub_company_billing_addresses.address_type,
latest_sub_company_billing_addresses.is_default_address,
latest_sub_company_billing_addresses.status AS company_address_status,
latest_sub_company_billing_addresses.created_datetime AS company_addresses_created_datetime,
latest_sub_company_billing_addresses.updated_datetime AS company_addresses_updated_datetime,
latest_company_documents.identity_document_id,
latest_company_documents.identity_approver_user_id,
latest_company_documents.identity_status,
latest_company_documents.identity_document_type,
latest_company_documents.identity_identity_number,
latest_company_documents.identity_approved_datetime,
latest_company_documents.identity_deleted_datetime,
latest_company_documents.identity_created_datetime,
latest_company_documents.identity_updated_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM parent_and_sub_companies
LEFT JOIN latest_sub_company_billing_addresses
ON (parent_and_sub_companies.sub_company_id = latest_sub_company_billing_addresses.sub_company_id)
LEFT JOIN latest_company_documents
ON (parent_and_sub_companies.parent_company_id = latest_company_documents.identity_parent_company_id)
),
-- FINAL
final__dim_shipping__companies AS (
SELECT
-- ids
sub_company_id,
sub_company_marking_id,
parent_company_id,
autocount_id,
sub_company_address_id,
identity_document_id,
identity_approver_user_id,
-- dimensions
sub_company_status,
parent_company_name,
sub_company_name,
company_type,
business_type,
is_credit_term_company,
is_migrated_company,
company_address_status,
address_reference,
address_line_one,
address_line_two,
district_name,
state_name,
country_name,
postcode,
address_type,
is_default_address,
identity_status,
identity_document_type,
identity_identity_number,
-- measures
-- date/times
parent_company_created_datetime,
parent_company_updated_datetime,
sub_company_created_datetime,
sub_company_updated_datetime,
company_addresses_created_datetime,
company_addresses_updated_datetime,
identity_approved_datetime,
identity_deleted_datetime,
identity_created_datetime,
identity_updated_datetime,
-- metadata
_dbt_ran_datetime
FROM sub_companies_enrich
)
SELECT * FROM final__dim_shipping__companies