SQL - 在Join上返回Null值而不是没有结果

时间:2015-02-18 18:43:16

标签: sql oracle-apex

我需要找出一种方法来返回所有月份的值,即使没有匹配。例如,我目前有9月到1月的数据,但由于没有9月或10月的观点,因此没有匹配,因为如果没有页面浏览量,数据集不显示值。

我需要的是在没有匹配的情况下显示null或0,而不是没有结果。

SELECT NULL LINK,
       u.page_name,
       TO_CHAR( s.data_date, 'Month-YYYY') as "Month",
       COALESCE(SUM(s.page_views),0) as "Product Pages"
from            URL_RELATE u
FULL OUTER JOIN SITE_DATA  s on SUBSTR(u.url,38,7) = SUBSTR(s.page,22,7)
                             or u.url = s.page
Where u.page_name = :P22_PRODUCT_PAGES_1
  and u.TRC_CRC = 'TRC'
group by s.data_date,
         u.page_name
order by s.data_date

1 个答案:

答案 0 :(得分:1)

你最简单的赌注(在我看来)可能是有一张日历表(我过去使用过“假期表”,如果我需要所有日期,日期,月份等)。您只需使用相应的列从日历表中将数据表连接到数据表,您将获得所有月份,而不仅仅是具有值的月份。

以下是创建日历表的示例:

How to create a Calender table for 100 years in Sql