Oracle 当前条件没有返回数据,如何让它某个字段返回一个0? 50

selectt1.curr_dealcurr_deal1,t1.kpi_valuevalue1,t2.curr_dealcurr_deal2,decode(t2.kpi_... select t1.curr_deal curr_deal1,

t1.kpi_value value1,
t2.curr_deal curr_deal2,
decode(t2.kpi_value,null,0,t2.kpi_value) value2,
t3.curr_deal curr_deal3,
decode(t3.kpi_value,null,0,t3.kpi_value) value3
from (select curr_deal, dms_cl, kpi_id, sum(kpi_value) kpi_value
from LV1 where kpi_id = 159
group by curr_deal, dms_cl, kpi_id) t1,
(select curr_deal, dms_cl, kpi_id, sum(kpi_value) kpi_value
from LV1 where kpi_id = 159
group by curr_deal, dms_cl, kpi_id) t2,
(select curr_deal, dms_cl, kpi_id, sum(kpi_value) kpi_value
from LV1 where kpi_id = 159
group by curr_deal, dms_cl, kpi_id) t3
where t1.kpi_id = t2.kpi_id
and t1.kpi_id = '159'
and t1.kpi_id = t3.kpi_id
and t1.dms_cl = t2.dms_cl
and t1.dms_cl = '1010259'
and t1.dms_cl = t3.dms_cl
and t1.curr_deal between 20141107 and 20141202
and t2.curr_deal =
to_char(to_date(t1.curr_deal, 'yyyymmdd') - 1, 'yyyymmdd')
--and t3.curr_deal =
to_char(add_months(to_date(t1.curr_deal, 'yyyymmdd'), -1),
'yyyymmdd')
order by t1.curr_deal) t;
这是我的sql,求助各位,三张表联查,日期分别为今日,昨日,上月今日,但是有的时候昨日和上月没有数据的话,今天的值也查不出来了,所以想让没有数据的时候值返回一个0(没数据的时候是一整条都没有,不单是值的字段没有)。nvl也试过了,没成功。。谢谢各位!!!
展开
 我来答
小童鞋_成er
2014-12-03 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
您好,提问者:
1、我看你是用了decode函数做判断的,既然显示字段是固定的,那么就可以decode函数。
2、另外如果涉及左右连接,那么也可以采取left join 和 right join来进行操作。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式