错在where a.ca_start_date=b.ca_start_date and a.ca_start_date=c.in_date
原因是3个表的日期字段都不是唯一和完整的。解决办法:连接将3个结果集,假设in_system表中的记录在日期字段上涵盖了callin_log、callout_log
SELECT tb3.in_date, tb1.ct, tb2.ct, tb3.ct
FROM (SELECT ca_start_date, COUNT (ca_start_date) ct
FROM callin_log
GROUP BY ca_start_date) tb1,
(SELECT ca_start_date, COUNT (ca_start_date) ct
FROM callout_log
GROUP BY ca_start_date) tb2,
(SELECT in_date, SUM (in_count) ct
FROM in_system
GROUP BY in_date) tb3
WHERE tb3.in_date = tb1.ca_start_date(+)
AND tb3.in_date = tb2.ca_start_date(+)
原因是3个表的日期字段都不是唯一和完整的。解决办法:连接将3个结果集,假设in_system表中的记录在日期字段上涵盖了callin_log、callout_log
SELECT tb3.in_date, tb1.ct, tb2.ct, tb3.ct
FROM (SELECT ca_start_date, COUNT (ca_start_date) ct
FROM callin_log
GROUP BY ca_start_date) tb1,
(SELECT ca_start_date, COUNT (ca_start_date) ct
FROM callout_log
GROUP BY ca_start_date) tb2,
(SELECT in_date, SUM (in_count) ct
FROM in_system
GROUP BY in_date) tb3
WHERE tb3.in_date = tb1.ca_start_date(+)
AND tb3.in_date = tb2.ca_start_date(+)
只好用union了。然后通过decode旋转一下。不过有话务量的这一天,要么有呼入,要么有呼出。swj_20 (kiki) 你说是不是的