oracle遍历并修改数据

现有表ABASE_DTPRO_NOPRONMSALE_AMT20150420L1鞋类500020150420L2食品类1500020150520L1鞋类800020150... 现有表A

BASE_DT PRO_NO PRONM SALE_AMT
20150420 L1 鞋类 5000
20150420 L2 食品类 15000
20150520 L1 鞋类 8000
20150520 L2 食品类 25000
20150520 L3 电器类 55000
20150620 L1 鞋类 8000
我想取到的数据是
20150420 L1 鞋类 5000
20150420 L2 食品类 15000
20150420 L3 电器类 0
20150520 L1 鞋类 8000
20150520 L2 食品类 25000
20150520 L3 电器类 55000
20150620 L1 鞋类 8000
20150620 L2 食品类 0
20150620 L3 电器类 0

如何遍历该表并向上面一样,当该日期种类不全的时候赋默认值,
请拯救我这个菜鸟吧,刚接触ORACLE 没有分了~~跪谢~!
展开
 我来答
请叫我召哥
2015-05-15 · TA获得超过792个赞
知道小有建树答主
回答量:572
采纳率:95%
帮助的人:377万
展开全部
SELECT NVL(B.BASE_DT, A.BASE_DT) BASE_DT,
A.PRO_NO,
A.PRONM,
NVL(SALE_AMT, 0)
FROM (SELECT T.BASE_DT, A.PRO_NO, PRONM
FROM (SELECT DISTINCT BASE_DT FROM SHOPS) T,
(SELECT DISTINCT PRO_NO, PRONM FROM SHOPS) A) A,
(SELECT * FROM SHOPS) B
WHERE A.PRO_NO = B.PRO_NO(+)
AND A.BASE_DT = B.BASE_DT(+)
ORDER BY NVL(B.BASE_DT, A.BASE_DT), PRO_NO;
匿名用户
2015-05-15
展开全部
select * from table order by BASE_DT asc
追问
请看清楚要求再解答好嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式