繁体   English   中英

错误->有人可以(向新手)解释如何在select语句内的子查询之外进行联接吗?

[英]Error --> Can someone explain (to a newbie) how to join outside of a sub-query within a select statement?

码:

 select cal.fiscal_week, h.role_type, h.se, sub.* from ( select ds_denali__call_disposition__c as disposition, datepart(hour, dateadd(hour, -5, ds_denali__call_started__c)) as call_time, datepart(dw, ds_denali__call_started__c) as day_of_week, ds_denali__owner__c as owner from homer.sfdc.ds_denali__dialsource_action__c where ds_denali__call_disposition__c in ('No Contact', 'Voicemail', 'Internal', 'Progression - Decs Mkr', 'Progression - Other', 'No Prog - Decs Mkr', 'Decision Positive', 'Decision Negative', 'No Prog - Other') and trunc(ds_denali__call_started__c) >= 2018-11-01) sub left join homer.homer_mapping.insidesales_hierarchy h on ds.ds_denali__owner__c = h.sfdc_id left join homer.homer_mapping.adp_fiscal_calendar cal on trunc(ds.ds_denali__call_started__c) = cal.day_date 

我需要加入所有内容,但'homer.sfdc.ds_denali__dialsource_action_c'是一个怪物表,所以我试图通过查询减少尽可能多的时间。 但是我仍然需要将其连接到我们拥有的其他两个表中(在左连接中列出)。 我遇到的错误是,它总是告诉我“ ds”。 不存在。 我只是不确定这是否是一个我不熟悉的基础作品,因为我是自学成才的。 任何和所有的帮助表示赞赏。

你好像不明白别名。 我假设ds.ds_denali__owner__c列旨在引用子查询中的homer.sfdc.ds_denali__dialsource_action__c表的列。 目前它正在查找默认数据库/模式中名为ds的表,因此您看到的错误。

接下来,您似乎无法正确理解子查询。 编写子查询时,实际上是在创建一个新表,然后可以在查询的其他位置使用它。 在这种情况下,您创建的表是别名(命名)sub并包含4列。 (处置方式,call_time,day_of_week和所有者)

把这些放在一起

left join homer.homer_mapping.insidesales_hierarchy h on ds.ds_denali__owner__c = h.sfdc_id

应该成为

left join homer.homer_mapping.insidesales_hierarchy h on sub.owner = h.sfdc_id

并修复

left join homer.homer_mapping.adp_fiscal_calendar cal on trunc(ds.ds_denali__call_started__c) = cal.day_date

首先需要将ds_denali__call_started__c添加到子查询中。

作为最后一点,如果你的子查询实际上有所帮助,那将会让我大吃一惊。 与直接加入homer.sfdc.ds_denali__dialsource_action__c相比,我完全希望它会减慢速度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM