Sql lts
我建议逐步使用中间值和连续子句链接来构建查询。我用这种方法来摆脱干扰,并测试中间结果Sql lts,sql,teradata,Sql,Teradata,我建议逐步使用中间值和连续子句链接来构建查询。我用这种方法来摆脱干扰,并测试中间结果 With Opportunity as ( Select * from isell_prod_view_db.sfdc_opportunity where oprty_outcm_resn_desc not in ('Deleted') or oprty_outcm_resn_desc is null and oprty_type_desc = 'Opportunity' ) ,UserPr
With Opportunity as
(
Select * from isell_prod_view_db.sfdc_opportunity
where oprty_outcm_resn_desc not in ('Deleted') or oprty_outcm_resn_desc is null and oprty_type_desc = 'Opportunity'
)
,UserProfileTerritoryDesc
(
select *, -- other fields of interest
TRIM (B.prim_terr_div_nbr) || '-' || TRIM (B.prim_terr_grp_nbr) || '-' || TRIM (B.prim_terr_sales_org_nbr)
|| '-' || TRIM (B.prim_terr_rgn_nbr) || '-' || TRIM (B.prim_terr_area_nbr) || '-' || TRIM (B.prim_terr_dist_nbr)
|| '-' || TRIM (B.prim_terr_nbr) as Terr,
A.spcl_notation_desc, B.emp_nbr, B.user_title_desc, TRIM (B.first_nm) ||' '|| TRIM (B.last_nm) as AE_Name
from sfdc_user_profile
)
,HistoricalPhases as
(
select *, --other fields of interest
Date_Phase_Modified,lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr, Historical_Phases order by Date_Phase_Modified asc) as
Age_in_Phase_Partition
from sfdc_opportunity_lifecycle
)
--test selects on each of above to see intermediate values, partcularly fields like Age_in_Phase_Partition
, AllResultsTogether
(
select
--...
Terr,
case when Age_in_Phase_Partition then -1*Age_in_Phase_Partition else Age_in_Phase_Partition end as Age_in_Phase_Final
from HistoricalPhases A
join Opportunity on
--...
join UserProfileTerritoryDesc
--...
)
--test results with partitioned and final values.
这是一个case表达式,而不是语句。您在第一个
case
子句中的*-1)
后面缺少了一个额外的)
。无需执行select distinct,您的group by不会返回重复项。您的外部select除了不必要地使查询复杂化之外,完全没有任何作用。这是一个case表达式,not语句。您在第一个CASE
子句中的*-1)
后面缺少一个额外的)
。无需执行select distinct,您的group by不会返回重复项。您的外部select除了不必要地使您的查询复杂化之外,完全没有任何作用。谢谢您,山姆。是的,毫无疑问,它是一团糟。我是一个真正的新手,尝试谷歌解决方案。我复制了您的代码,现在我收到以下错误消息:Failed 3800。THEN/ELSE表达式中的数据类型不匹配。我还用结果和预期结果更新了我的原始帖子,如果这有帮助的话@tj919我还是不明白你想做什么。但如果我没弄错的话,你看起来就像是在联合。用这个更新我的帖子。谢谢Sam。我想知道一笔交易在不同的销售周期中有多少天。有5个阶段,我最初的计算没有“关闭韩元”条款。除非只有一个实例。如本例所示,该交易在8天内处于“展示”阶段。一旦它被关闭,它应该是0。谢谢你山姆。是的,毫无疑问它是一团糟。我是一个真正的新手,尝试谷歌解决方案。我复制了您的代码,现在我收到以下错误消息:Failed 3800。THEN/ELSE表达式中的数据类型不匹配。我还用结果和预期结果更新了我的原始帖子,如果这有帮助的话@tj919我还是不明白你想做什么。但如果我没弄错的话,你看起来就像是在联合。用这个更新我的帖子。谢谢Sam。我想知道一笔交易在不同的销售周期中有多少天。有5个阶段,我最初的计算没有“关闭韩元”条款。除非只有一个实例。如本例所示,该交易在8天内处于“展示”阶段。一旦关闭,其读数应为0。
case when Historical_Phases <> 'Closed - Won' and Date_Phase_Modified - lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr, Historical_Phases order by Date_Phase_Modified asc) is null
then ((Date_Phase_Modified - lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr order by Date_Phase_Modified desc) * -1))
when Date_Phase_Modified - lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr, Historical_Phases order by Date_Phase_Modified asc) is not null
then Date_Phase_Modified - lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr, Historical_Phases order by Date_Phase_Modified asc)
else 0 end as Age_in_Phase,
With Opportunity as
(
Select * from isell_prod_view_db.sfdc_opportunity
where oprty_outcm_resn_desc not in ('Deleted') or oprty_outcm_resn_desc is null and oprty_type_desc = 'Opportunity'
)
,UserProfileTerritoryDesc
(
select *, -- other fields of interest
TRIM (B.prim_terr_div_nbr) || '-' || TRIM (B.prim_terr_grp_nbr) || '-' || TRIM (B.prim_terr_sales_org_nbr)
|| '-' || TRIM (B.prim_terr_rgn_nbr) || '-' || TRIM (B.prim_terr_area_nbr) || '-' || TRIM (B.prim_terr_dist_nbr)
|| '-' || TRIM (B.prim_terr_nbr) as Terr,
A.spcl_notation_desc, B.emp_nbr, B.user_title_desc, TRIM (B.first_nm) ||' '|| TRIM (B.last_nm) as AE_Name
from sfdc_user_profile
)
,HistoricalPhases as
(
select *, --other fields of interest
Date_Phase_Modified,lag (Date_Phase_Modified) over (partition by F.oprty_key_nbr, Historical_Phases order by Date_Phase_Modified asc) as
Age_in_Phase_Partition
from sfdc_opportunity_lifecycle
)
--test selects on each of above to see intermediate values, partcularly fields like Age_in_Phase_Partition
, AllResultsTogether
(
select
--...
Terr,
case when Age_in_Phase_Partition then -1*Age_in_Phase_Partition else Age_in_Phase_Partition end as Age_in_Phase_Final
from HistoricalPhases A
join Opportunity on
--...
join UserProfileTerritoryDesc
--...
)
--test results with partitioned and final values.