Я пытаюсь выполнить объединение трех таблиц. Это исходный код, который работает, но возвращает все NULL для описания продукта. Я подумал, что это потому, что в первых двух таблицах, к которым я присоединяюсь, ключ присоединения - это тип varchar, а в другой - INT. Ключ int - это analytics.dbt_lcasucci.product_category.product ID (последнее присоединение).
SELECT raw.stitch_heroku.spree_line_items.variant_id
, raw.stitch_heroku.spree_variants.SKU
, raw.stitch_heroku.spree_line_items.price
, raw.stitch_heroku.spree_line_items.cost_price
, pc.product_description
FROM raw.stitch_heroku.spree_line_items
LEFT OUTER JOIN raw.stitch_heroku.spree_variants
ON raw.stitch_heroku.spree_line_items.variant_id = raw.stitch_heroku.spree_variants.id
LEFT JOIN analytics.dbt_lcasucci.product_category as pc ON pc.product_ID = raw.stitch_heroku.spree_variants.id
GROUP BY raw.stitch_heroku.spree_line_items.variant_id
, raw.stitch_heroku.spree_variants.SKU
, raw.stitch_heroku.spree_line_items.price
, raw.stitch_heroku.spree_line_items.cost_price
, pc.product_description
Далее я попытался использовать некоторую функцию снежинки для преобразования идентификатора analytics.dbt_lcasucci.product_category.product ID в varchar.
Это то, что я пытался:
LEFT JOIN (
SELECT analytics.dbt_lcasucci.product_category.product_description
, T0_VARCHAR(analytics.dbt_lcasucci.product_category.product_ID)
FROM analytics.dbt_lcasucci.product_category) as pc
ON pc.product_ID= sv.id
или
LEFT JOIN (
SELECT analytics.dbt_lcasucci.product_category.product_description
, TRY_CAST(analytics.dbt_lcasucci.product_category.product_ID as VARCHAR(10)
FROM analytics.dbt_lcasucci.product_category) as pc
ON pc.product_ID= sv.id
Я получаю ошибку: Неверный идентификатор T0_VARCHAR или функцию TRY_CAST нельзя использовать с аргументамитипов NUMBER (38,0) и VARCHAR (10)
Я не уверен, есть ли способ исправить это, выполнив это, или мне просто нужно повторно загрузить этот файл, изменив тип в источнике.
Заранее спасибо !!!!