暂无图片
ORACLE子表链接主表,主表的数据只显示在第一行怎么做到
我来答
分享
墨天轮-雪宝君
2021-07-14
ORACLE子表链接主表,主表的数据只显示在第一行怎么做到

像这种,子表链接主表,主表的数据只显示在第一行。

image.png

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
DarkAthena

一般来说,主表和子表关联,主表的数据会显示和子表一样的行数,而且会重复,我猜你的意思是,对于主表中的每一行记录,在结果中都只保留一条。

先说问题,从你这个格式中来看,如果有人对这个数据进行了排序,那么你就会丢失子表和主表的关系,如果非得用这个格式,建议至少要新增一个行号。

然后解决方案,你想要的是保留一条,换个角度其实就是,不是第一条的全部置为空。

首先用最基本的关联,然后用count() over(partiotion by 单据编号 order by 产品名称) 构造一列,在不改变行数的情况下,得到每张单据的子表行数,

再用decode或者case when 判断这个值,如果是1,那么就显示单据主表的值,如果不是,就显示空。

注意最后一定要按单据编号加产品名称排序

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏