sql - ORACLE SQL:组合 2 行 2 个单独的选择查询
问题描述
你好,我对 SQL 很陌生,我有一个问题。我有 3 张桌子的工作,收入和成本。job.unid = cost.job_unid 和收入.job_unid
我想找到每个工作的总收入和成本,然后在一行上找到每个工作的利润:
标题看起来像这样: 工作编号、总收入、总成本、损益(Rev-Cost)
我尝试进行单个查询,但在互联网上搜索解决方案后,我似乎应该分别查询收入和成本,然后使用 Union All 合并。
现在我正在这样做:
select m,
rlc,
rvatlc,
rtotlc,
clc,
cvatlc,
ctotlc
from(
(select decode(j.consolno,null,j.shpno,j.consolno) m,
sum(nvl(r.amtlc,0)) rlc,
sum(nvl(r.vatamtlc,0)) rvatlc,
sum(nvl(r.amtlc,0))+sum(nvl(r.vatamtlc,0)) rtotlc,
0 clc,
0 cvatlc,
0 ctotlc
from
job j
full join revenue r on j.unid=r.job_unid
where j.voidby is null and decode(j.consolno,null,j.shpno,j.consolno)='SHSEM00131'
group by decode(j.consolno,null,j.shpno,j.consolno)
)
union all
(select decode(j.consolno,null,j.shpno,j.consolno) m,
0 rlc,
0 rvatlc,
0 rtotlc,
sum(nvl(c.amtlc,0)) clc,
sum(nvl(c.vatamtlc,0)) cvatlc,
sum(nvl(c.amtlc,0))+sum(nvl(c.vatamtlc,0)) ctotlc
from
job j, cost c
where j.voidby is null and j.unid=c.job_unid and decode(j.consolno,null,j.shpno,j.consolno)='SHSEM00131'
group by decode(j.consolno,null,j.shpno,j.consolno)
))
结果是:
我不确定你是否能看到,但它是 2 行:1 是收入,1 是成本。
我想结合这两条线
解决方案
尝试这个。
select m,
sum(rlc),
sum(rvatlc),
sum(rtotlc),
sum(clc),
sum(cvatlc),
sum(ctotlc)
from(
(select decode(j.consolno,null,j.shpno,j.consolno) m,
sum(nvl(r.amtlc,0)) rlc,
sum(nvl(r.vatamtlc,0)) rvatlc,
sum(nvl(r.amtlc,0))+sum(nvl(r.vatamtlc,0)) rtotlc,
0 clc,
0 cvatlc,
0 ctotlc
from
job j
full join revenue r on j.unid=r.job_unid
where j.voidby is null and decode(j.consolno,null,j.shpno,j.consolno)='SHSEM00131'
group by decode(j.consolno,null,j.shpno,j.consolno)
)
union all
(select decode(j.consolno,null,j.shpno,j.consolno) m,
0 rlc,
0 rvatlc,
0 rtotlc,
sum(nvl(c.amtlc,0)) clc,
sum(nvl(c.vatamtlc,0)) cvatlc,
sum(nvl(c.amtlc,0))+sum(nvl(c.vatamtlc,0)) ctotlc
from
job j, cost c
where j.voidby is null and j.unid=c.job_unid and decode(j.consolno,null,j.shpno,j.consolno)='SHSEM00131'
group by decode(j.consolno,null,j.shpno,j.consolno)
)) group by m;
推荐阅读
- php - PHP - 当我可以通过 $_File 数组获取路径信息时,为什么要使用它
- c# - 必须如何将地址写入 api 控制器并在控制器中使用属性。ASP.NET 核心
- java - 如何在流布局中组织对象?
- javascript - Javascript函数不返回变量
- javascript - 曼德布罗集合中的噪声
- sql-server - 站点移动到第 3 方托管时出现 SQL Server Express 连接字符串错误
- javascript - 如果javascript中的值相同,如何再次使用math.random来获得不同的值
- rspec-mocks - 是否可以期望使用不同的值调用两次 RSpec double?
- javascript - 点击时如何实时更新组件?
- xml - Logstash - 解析 XML 属性