修改sql语句

想你的旧名字 2019-08-27 08:47:25
一个sql语句

SELECT * FROM (SELECT i.RECEIVE_NUMBER,i.ITEM_CODE,p.IDCARD_NO,p.NAME,i.BUSINESS_OBJECT_TYPE,f.DOCUMENT_NAME,f.FILE_PATH,f.FILE_NAME
FROM
ACCEPT_BUSINESS_INDEX i LEFT JOIN ACCEPT_PERSON p ON i.BUSINESS_OBJECT_CODE = p.SEQ_ID LEFT JOIN ACCEPT_BUSINESS_FILE f ON i.BSNUM = f.BSNUM
WHERE
i.BUSINESS_OBJECT_CODE = p.SEQ_ID AND i.BSNUM = f.BSNUM AND (i.STATE='99' OR i.STATE='100') AND f.TYPE='1' AND i.RECEIVE_NUMBER NOT IN (SELECT i.RECEIVE_NUMBER FROM ACCEPT_MATERIAL_DOSSIER m WHERE i.RECEIVE_NUMBER = m.BUSINESS_OBJECT_CODE )) WHERE ROWNUM <= 200


结果为


现在想把重复的 i.RECEIVE_NUMBER 去掉 应该怎么改
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
想你的旧名字 2019-08-29
  • 打赏
  • 举报
回复
引用 7 楼 AHUA1001 的回复:
这列的重复去掉,后面的列的值,怎么处理?
后面3列保留,前面几列重复的都可以去掉
AHUA1001 2019-08-29
  • 打赏
  • 举报
回复
这列的重复去掉,后面的列的值,怎么处理?
想你的旧名字 2019-08-28
  • 打赏
  • 举报
回复
忘了说了,RECEIVE_NUMBER这个字段重复是因为一个RECEIVE_NUMBER对应了多个文件,所以才会重复,实际上表里 RECEIVE_NUMBER字段是不重复的
想你的旧名字 2019-08-28
  • 打赏
  • 举报
回复
不行啊,结果不对
引用 4 楼 nayi_224 的回复:
这应该叫聚合 select RECEIVE_NUMBER, ITEM_CODE, IDCARD_NO, listagg(NAME) within group(order by 1), listagg(BUSINESS_OBJECT_TYPE) within group(order by 1) from tab group by RECEIVE_NUMBER, ITEM_CODE, IDCARD_NO
nayi_224 2019-08-28
  • 打赏
  • 举报
回复
这应该叫聚合 select RECEIVE_NUMBER, ITEM_CODE, IDCARD_NO, listagg(NAME) within group(order by 1), listagg(BUSINESS_OBJECT_TYPE) within group(order by 1) from tab group by RECEIVE_NUMBER, ITEM_CODE, IDCARD_NO
想你的旧名字 2019-08-28
  • 打赏
  • 举报
回复
前面几列重复的都可以去掉,后面三列保留下来
想你的旧名字 2019-08-28
  • 打赏
  • 举报
回复
后面的保留下来
卖水果的net 2019-08-28
  • 打赏
  • 举报
回复
这列的重复去掉,后面的列的值,怎么处理?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧