Je suis un débutant avec SQL. J'utilise Teradata. Nous essayons de rassembler les données pour comparer les données réelles par rapport aux prévisions.Ajouter deux tables - Union ne fonctionne pas en SQL (Teradata)
Voici mon code:
select
'Actuals' as fc_version,
A.tra_fiscal_year as fiscal_year,
A.tra_fiscal_week as fiscal_week,
A.tra_allocation_category_code as category,
A.tra_grand_pricing_sales_channel as grandparent_channel,
D.fc_prod_id,
coalesce(
case
when A.tra_ticket_product_code like 'A%' then 'Total'
else null
end,
case
when A.tra_grand_pricing_sales_channel = 'INMKT' Then 'In Market'
else 'All Other'
end)
as fc_sales_channel,
sum(A.tra_ticket_quantity) as units_sold,
from ((pd_plan_forecast_db.adm_rev_detail A
left outer join
pd_plan_forecast_db.adm_rev_prod_code_to_fc_id B
on (A.tra_ticket_product_code = B.product_code))
left outer join
pd_plan_forecast_db.adm_rev_ticket_code_to_fc_id C
on (A.tra_ticket_code = C.ticket_code)
left outer join
pd_plan_forecast_db.adm_rev_fc_prod_info D
on (coalesce(B.fc_prod_id, C.fc_prod_id) = D.fc_prod_id))
group by 1, 2, 3, 4, 5, 6, 7
union
select fc_version, fiscal_year, fiscal_week, category, null as grandparent_channel, fc_prod_id, fc_sales_channel, sum(units_sold) as units_sold
from pd_plan_forecast_db.adm_rev_fc
where fiscal_year = 2017 and fiscal_week = 1
group by 1,2,3,4,5,6,7
Si vous collez la première partie avant l'union, il a le bon résultat. De même avec la deuxième partie après l'union.
Mais l'ensemble du code donne l'erreur: SELECT Failed. [3654] Les expressions select-list correspondantes sont incompatibles.
Voici une idée générale des tables que j'utilise.
Merci! C'était une simple correction de passer d'un null à un devis vide. – bov25