在salesforce_event
中,我们有created_date
,account_id
和who_id
。在salesforce_task
中,我们有created_date
,close_date
,account_id
和who_id
。
event
和task
可以在account_id
(如果有)或who_id
上连接。因此,看起来将需要保留2个左联接。
我想获得事件 created_date
和任务 created_date
之间的日期,如果任务 close_date
在事件的最近30天内已创建。
有没有一种有效的方法来实现这一目标?我所拥有的在下面,并且一直在运行,而且似乎也不正确]
select
se.id,
min(se.created_date) - min(coalesce(st1.close_date,st.close_date))
from salesforce_event se
left join salesforce_task st on se.who_id = st.who_id and st.close_date >= se.created_date - 30 and st.close_date <= se.created_date
left join salesforce_task st1 on se.account_id = st1.account_id and st1.close_date >= se.created_date - 30 and st1.close_date <= se.created_date group by 1
谢谢!
SELECT
se.id,
se.created_date - st.close_date
FROM salesforce_event AS se
LEFT JOIN salesforce_task AS st ON (se.account_id = st.account_id OR se.who_id = st.who_id) AND st.close_date >= se.created_date - 30