select D.[Date], E.emp_name, E.emp_jde, count(C.[agent_no]) calls, count(S.[EMPJDENUM]) sales
from
(select cast([start_date] as date) dte, [agent_no]
from call_table
where [skill_name] like '%5700 sales l%'
and [Agent_Time] != '0'
) C
full outer join
(select [AC#DTE_dt], [EMPJDENUM]
from sales_table
where [ICGCD2] in ('LAWN', 'HORT')
and [CHANNEL]= 'INQ'
and [ITMQTY]>3
) S on c.dte=s.[AC#DTE_dt]
right join
(select [Date]
from Date_table
) D on c.dte=d.[Date] or s.[AC#DTE_dt]=d.[Date]
right join
(select [emp_name], [emp_jde], [agent_no]
from Employee_table
) E on C.[agent_no]=E.agent_no and S.[EMPJDENUM]=E.emp_jde
group by D.[Date], E.emp_name, E.emp_jde
日期表 -SQL查询 - 分组/汇总跨多个表
注:并非所有的日期将同时拥有电话和销售。
附加表 -
有什么需要完成 -
1)加入和总通话和销售由职工通过加入电话表(上agent_no)和销售(在JDE )表
2)由于不是所有的日期都包括呼叫和销售 - 使用日期维度表来确保所有日期都被表示
期望的结果是这样的 -
查询我写的执行 - 它需要很长时间我只是最终取消查询。
任何帮助,将不胜感激。
每个表中大概有多少行? – mendosi
呼叫表将有大约800k,销售表每年大约有400k数据。 – user3067478
您能否包括估计的执行计划请https://www.brentozar.com/pastetheplan/ – mendosi