2021-07-14
ORACLE子表链接主表,主表的数据只显示在第一行怎么做到
像这种,子表链接主表,主表的数据只显示在第一行。

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
像这种,子表链接主表,主表的数据只显示在第一行。

一般来说,主表和子表关联,主表的数据会显示和子表一样的行数,而且会重复,我猜你的意思是,对于主表中的每一行记录,在结果中都只保留一条。
先说问题,从你这个格式中来看,如果有人对这个数据进行了排序,那么你就会丢失子表和主表的关系,如果非得用这个格式,建议至少要新增一个行号。
然后解决方案,你想要的是保留一条,换个角度其实就是,不是第一条的全部置为空。
首先用最基本的关联,然后用count() over(partiotion by 单据编号 order by 产品名称) 构造一列,在不改变行数的情况下,得到每张单据的子表行数,
再用decode或者case when 判断这个值,如果是1,那么就显示单据主表的值,如果不是,就显示空。
注意最后一定要按单据编号加产品名称排序
评论
有用 0
墨值悬赏