sql—使用dbt创建联接查询,但结果会忽略一些列

jxct1oxe  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(348)

下面的代码使用右联接将我的数据从表1连接到表2。dbt成功地编译了代码没有错误,但我没有得到我需要的列。。。

{{
  config(
    materialized='incremental'
  )
}}

with incremental_salesorder as (
  select * from {{ source('db_warehouse', 'sale_order_line') }} 
),

final as (
  select 
    distinct incremental_salesorder.product_code_cust, 
    incremental_salesorder.order_id as id,
    incremental_salesorder.create_date, 
    incremental_salesorder.name as product_name, 
    incremental_salesorder.product_name_cust, 
    sale_order.name as sale_order_ref
  from incremental_salesorder 
  right join {{ source('db_warehouse', 'sale_order')}} using (id)
  ORDER BY incremental_salesorder.create_date
)

{% if is_incremental() %}
  where incremental_salesorder.create_date >= (select max(create_date) from {{ this }} )

{% endif %}

select * from final
``` `incremental_salesorder.order_id` 以及 `incremental_salesorder.name` 代码编译成功后,结果中没有
![](https://i.stack.imgur.com/SWJzQ.png)
我做错什么了?
chhkpiq4

chhkpiq41#

新手失误:
确保定义的模型名称相同:

models:
    dbt_test:
      # Applies to all files under models/example/
        example:
            materialized: view
            +schema: staging
            +enabled: false
        sales_order_unique_incremental: <- this line must match the folder name
            materialized: table
            +schema: datastudio


我完全没有听到警告。一旦纠正了这个问题,我就能够编译查询并得到所需的结果。如果有人需要一个如何进行连接的示例,这是一个有效的方法:)

相关问题