oracle用关联查询,两个表里面列名相同的列合并成一列了怎么处理

select d.* from (select 

  a.requestid,

  a.depmentname ,

a.operatorname ,

c.amount aout,

c.paytype ,

a.billdate bdate

from 

oa_fund_plan_out c

left JOIN (select REQUESTID,depmentname,operatorname,billdate from oa_fund_plan 

) a ON c.requestid = a.requestid 

UNION all 

select 

  a.requestid,

  a.depmentname ,

a.operatorname ,

b.amount ain,

b.colltype ,

a.billdate bdate

from

oa_fund_plan_in b

  left JOIN (select REQUESTID,depmentname,operatorname,billdate from oa_fund_plan 

) a  ON b.requestid = a.requestid) d

where 

d.bdate='2021-06-23'

WeChat 圖片_20210716091745.png

dominikruan 发布于 2021-7-16 09:19
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-7-16 09:26

上面加一列,为空,下面也一样

select d.* from (select 

  a.requestid,

  a.depmentname ,

a.operatorname ,

c.amount aout,

"" ain, 

c.paytype ,

a.billdate bdate

from 

oa_fund_plan_out c

left JOIN (select REQUESTID,depmentname,operatorname,billdate from oa_fund_plan 

) a ON c.requestid = a.requestid 

UNION all 

select 

  a.requestid,

  a.depmentname ,

a.operatorname ,

"" aout

b.amount ain,

b.colltype ,

a.billdate bdate

from

oa_fund_plan_in b

  left JOIN (select REQUESTID,depmentname,operatorname,billdate from oa_fund_plan 

) a  ON b.requestid = a.requestid) d

where 

d.bdate='2021-06-23'

  • dominikruan dominikruan(提问者) 这个行不通,会报错,非法的零长度字符
    2021-07-16 09:56 
  • snrtuemc snrtuemc 回复 dominikruan(提问者) 那就默认给值1,或者其他你的数据表中没有的值,不用空字符串就可以
    2021-07-16 10:04 
  • dominikruan dominikruan(提问者) 回复 snrtuemc 我改成0 了,因为要计算,但是两列数毫无关系,感谢你!
    2021-07-16 10:17 
  • dominikruan dominikruan(提问者) 回复 snrtuemc 给null也行
    2021-07-16 10:20 
  • snrtuemc snrtuemc 回复 dominikruan(提问者) 解决就好,我也是给个思路,自己发现跟过方案,一起进步
    2021-07-16 10:21 
最佳回答
0
时光隧道Lv4见习互助
发布于2021-7-16 09:22(编辑于 2021-7-16 09:24)

你用union all 不就是这个效果吗,你想实现什么效果呢,如果不想在一列就得用join啊

  • dominikruan dominikruan(提问者) 那看来不能用union all了...我想实现三张表关联查询,但是两张字表数据互不关联, 都和主表通过requestid关联
    2021-07-16 09:24 
最佳回答
0
liu.yangLv2初级互助
发布于2021-7-16 09:28(编辑于 2021-7-16 09:30)

你要不想合并也简单  占一位

select 其他字段,sum(aout) as aout,sum(ain) as ain

from(

select  其他字段,amount as aout ,0 as ain from 表名

union all

select 其他字段,0 as aout,amount as ain  from 表名

)tt

group by 其他字段

  • 4关注人数
  • 457浏览人数
  • 最后回答于:2021-7-16 09:30
    请选择关闭问题的原因
    确定 取消
    返回顶部