在做SQL查询时,会有一些想要的数据不显示。比如:想要查询2014年和2015年,而2014没有数据,但是我们也需要将没有的数据设置为0,这样我们就需要SQL的左右连接。
select
b.mon MON ,
nvl(a.count, '0') PDGS,
nvl(a.sf, '')
from
(
select
b.ny ny ,
count(1) count,
b.sf
from
table b
where
pdxldydj='220V'
and 1 =1
group by
ny,
sf
)
a,
mon_vs
S b
where
to_char(b.mon, 'yyyymm')=to_char(a.ny(+), 'yyyymm')
and b.mon >= TO_DATE('2014-01', 'YYYY-MM')
AND b.mon <= TO_DATE('2015-9', 'YYYY-MM')
order by
b.mon
DSM_KH_JNFWYDTJB_VS 为月份的对比表,里面存所有的月份。无论查询作为SQL多么复杂,都可作为子表关联月份的对比表。