SQL查询某月数据,若数据为0,这个月都不会显示,如何让它显示出来呢
如图,如何让4月也显示?
改一下SQL, 加一个判断,加一个值?
select 月份,case when 金额 is null then 0 else 金额 end as 金额 from
SELECT AA.月份,BB.金额 from (
select 月份 from 日期表 )AA
LEFT JOIN
(select 月份,金额 from A )BB
ON AA.月份=BB.月份)CC
如果是orical的话可以使用这个把每个月的数据都拿出来
select next_day(sysdate,2)-7 a from dual
--前3月(含当月)
select to_char(add_months(sysdate,level-3),'YYYY-mm') Formatted_Date from dual
CONNECT BY level <= 3
也可以用单元格先把月份扩展出来,后面的数据通过过滤匹配
在单元格加上条件属性-新值=0:
公式为:len($$$)=0
直接sql isnull(金额,0)
可以另开一个数据集,列出所有的月份,在后续单元格中加入原数据集金额字段,并添加过滤,使月份等于前一单元格
月份和金额分成两个数据集,月份单独列出或模拟出需要的月份,然后金额设置过滤匹配