单行子查询返回多个行咋处理

年度厂区料号数据明细.cpt

标准化管理-料号明细28.cpt

第二张表是第一张表中新修订料号中的超连接....

FineReport 038256 发布于 2019-10-23 10:29 (编辑于 2019-10-23 16:15)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
vickyiLv4初级互助
发布于2019-10-23 10:34(编辑于 2019-10-23 14:48)

看下面的回答你用的是ORACLE,题主要不要试试百度的方案

1. https://blog.csdn.net/xmm_1030/article/details/46724153

2. https://blog.csdn.net/lt53130640688/article/details/49783975

3. https://blog.csdn.net/u014463137/article/details/54906380


最佳回答
0
shirokoLv6资深互助
发布于2019-10-23 10:37

如果你是要多行数据一行显示,去掉扩展属性。

如果是要只想要一行数据,可以在查询里限制 top 1,limit 1,限制成1行

  • 038256 038256(提问者) 我想让一行展示,不扩展还是老样子
    2019-10-23 10:50 
  • vickyi vickyi 回复 038256(提问者) 答主的意思是,单元格不设置扩展就可以了
    2019-10-23 12:14 
  • 038256 038256(提问者) 回复 vickyi 设置了不扩展还是不行
    2019-10-23 14:39 
最佳回答
0
qhlLv6中级互助
发布于2019-10-23 10:42(编辑于 2019-10-23 11:32)

因为关联出来本来应该只需要一条数据,但是返回了多行。可以根据需求,取max/min/sum/count等进行聚合,

image.png

  • 038256 038256(提问者) 啥意思
    2019-10-23 10:51 
  • qhl qhl 回复 038256(提问者) 你把SQL截图出来给你说明,
    2019-10-23 10:53 
  • 038256 038256(提问者) 回复 qhl select 编号,名称,所有者,创建时间,所有组,更新者,更新时间,id,部门,版本号,抛转系统 from( select f.id 编号,f.name 名称,(select u.name from sa_user u where u.guid = OWNERUSER) 所有者,f.createtime 创建时间, (select u.name from sa_group u where u.guid = ownergroup) 所有组, (select u.name from sa_user u where u.guid = updateuser) 更新者,f.updatetime 更新时间, (select u.id from sa_user u where u.guid = updateuser) id, (select u.tel from sa_user u where u.guid = updateuser) 部门,f.revisionidsequence 版本号 ,(select Result from sa_job_queue j,sa_user u where j.CREATEUSERGUID =u.guid) 抛转系统 from ma_foundation f, (select m.*from ma_class m start with m.classname = \'ItemManagement\' connect by prior m.guid = m.superclassguid) a where 1=1 ${if(len(年份)==0,\"\",\"and to_char(f.createtime,\'yyyy\')=\'\"+年份+\"\'\")} ${if(len(月份)==0,\"\",\"and to_char(f.createtime,\'mm\')=\'\"+月份+\"\'\")} AND f.classguid = a.guid and f.latestrevision like \'%mr%\' --and f.id=(\'116015671120\') --and f.createtime >=to_date(\'20190101\',\'yyyymmdd\') order by f.id ) where 所有组=\'${c}\' 问题在抛转系统那个字段
    2019-10-23 11:20 
  • qhl qhl 回复 038256(提问者) 上面截图
    2019-10-23 11:32 
最佳回答
0
黄源Lv6中级互助
发布于2019-10-23 11:33(编辑于 2019-10-23 16:30)

oracle用wm_concat聚合


(select wm_concat (distinct Result) from sa_job_queue j,sa_user u where j.CREATEUSERGUID =u.guid and u.guid = updateuser) 抛转系统

  • 038256 038256(提问者) select 编号,名称,所有者,创建时间,所有组,更新者,更新时间,id,部门,版本号,抛转系统 from( select f.id 编号,f.name 名称,(select u.name from sa_user u where u.guid = OWNERUSER) 所有者,f.createtime 创建时间, (select u.name from sa_group u where u.guid = ownergroup) 所有组, (select u.name from sa_user u where u.guid = updateuser) 更新者,f.updatetime 更新时间, (select u.id from sa_user u where u.guid = updateuser) id, (select u.tel from sa_user u where u.guid = updateuser) 部门,f.revisionidsequence 版本号 ,(select wm_concat (Result) from sa_job_queue j,sa_user u where j.CREATEUSERGUID =u.guid ) 抛转系统 from ma_foundation f, (select m.*from ma_class m start with m.classname = \'ItemManagement\' connect by prior m.guid = m.superclassguid) a where 1=1 ${if(len(年份)==0,\"\",\"and to_char(f.createtime,\'yyyy\')=\'\"+年份+\"\'\")} ${if(len(月份)==0,\"\",\"and to_char(f.createtime,\'mm\')=\'\"+月份+\"\'\")} AND f.classguid = a.guid and f.latestrevision like \'%mr%\' --and f.id=(\'116015671120\') --and f.createtime >=to_date(\'20190101\',\'yyyymmdd\') order by f.id ) where 所有组=\'${c}\' 改成这样又出现操作数值超出系统设置
    2019-10-23 11:52 
  • 黄源 黄源 回复 038256(提问者) select wm_concat (distinct Result) from sa_job_queue j,sa_user u where j.CREATEUSERGUID =u.guid
    2019-10-23 11:53 
  • 038256 038256(提问者) 回复 黄源 还是超出限制
    2019-10-23 11:58 
  • 黄源 黄源 回复 038256(提问者) select wm_concat (distinct Result) from sa_job_queue j,sa_user u where j.CREATEUSERGUID =u.guid and u.guid = updateuser 不用加这个条件?
    2019-10-23 12:13 
  • 038256 038256(提问者) 回复 黄源 这个条件必须加
    2019-10-23 15:28 
  • 5关注人数
  • 1072浏览人数
  • 最后回答于:2019-10-23 16:30
    请选择关闭问题的原因
    确定 取消
    返回顶部