sql - 在 oracle 中连接具有相同列的两个查询的结果
问题描述
我正在使用甲骨文。我目前正在处理具有两个不同查询输出的表。我想将两个输出合并为单个输出,我尝试过 Union all 和 union 但没有运气。
with D as
(
Select
VP.HOMELABORLEVELNM4 as DEPT,
SUM(X.DURATIONSECSQTY/3600.0) as ACTL_HR,
SUM(X.WAGEAMT) as ACTL_DLR,
to_char(X.APPLYDTM,'YYYY-MM') AS MONTHLY,
VP.HOMELABORLEVELDSC4 as DESCRIPTION,
NULL as DAILY,
NULL as DEPT1,
NULL as ACTL_HR1,
NULL as ACTL_DLR1
from VP_EMPLOYEEV42 VP,
WFCTOTAL X
where
VP.PERSONID = X.EMPLOYEEID and
X.APPLYDTM between '01-DEC-18' and '31-DEC-18' and
X.EMPLOYEEID in (select personid from PERSONCSTMDATA where CUSTOMDATADEFID ='154' and PERSONCSTMDATATXT = 'USKEANE')
group by VP.HOMELABORLEVELNM4, VP.HOMELABORLEVELDSC4, to_char(X.APPLYDTM,'YYYY-MM')
union all
Select
NULL as DEPT,
NULL as ACTL_HR,
NULL as ACTL_DLR,
NULL as MONTHLY,
VP.HOMELABORLEVELDSC4 as DESCRIPTION,
to_char(X.APPLYDTM) as DAILY,
VP.HOMELABORLEVELNM4 as DEPT1,
SUM(X.DURATIONSECSQTY/3600.0) as ACTL_HR1,
SUM(X.WAGEAMT) as ACTL_DLR1
from VP_EMPLOYEEV42 VP,
WFCTOTAL X
where
VP.PERSONID = X.EMPLOYEEID and
X.APPLYDTM = '31-DEC-18' and
X.EMPLOYEEID in (select personid from PERSONCSTMDATA where CUSTOMDATADEFID ='154' and PERSONCSTMDATATXT = 'USKEANE')
group by VP.HOMELABORLEVELNM4, VP.HOMELABORLEVELDSC4, to_char(X.APPLYDTM)
)
select D.DEPT DEPT,
SUM(D.ACTL_HR) ACTL_HR,
SUM(D.ACTL_DLR) ACTL_DLR,
D.MONTHLY MONTHLY,
D.DESCRIPTION DESCRIPTION,
D.DAILY DAILY,
D.DEPT1 DEPT1,
SUM(D.ACTL_HR1) ACTL_HR1,
SUM(D.ACTL_DLR1) ACTL_DLR1
from D
group by D.DEPT, D.MONTHLY, D.DAILY, D.DESCRIPTION, D.DEPT1
order by DESCRIPTION
它给了我这样的输出
-部门-HR-DLR-每月-DESC-每日-部门-HR-DLR-
-1-12-12-11/1-Manu-NULL-NULL-NULL-NULL-
-NULL-NULL-NULL-NULL-Manu-17-1-12-12-
解决方案
我认为您的目标(我不太清楚)可能更容易按照这种模式实现:
with Query1 as (select fields from table where conditions are met),
Query2 as (select fields from table where conditions are met)
select fields
from Query1
outer join Query2
on Query1.identifier_for_match=Query2.identifier_for_match
where optional conditions are true
注意 - 在您的情况下,“identifier_for_match”可能是 employeeid(这将使其成为 Query1/Query2 结果集的必需部分) - 您必须查看模型并弄清楚查询应如何组合行。此外 - 如果提供表格的 DDL 以及相同的一些数据(包括所需的输出),则更容易提供适合您表格的答案
推荐阅读
- ios - iOS 中的应用内评分功能及其限制
- python - Python的set数据类型数据的内容是否会被排序
- ajax - 在 laravel 中使用模态引导显示特定数据
- python - 尝试使用 Python 中的 Scapy 模块更改 DNS 数据包中的“rdata”时出错
- c - C为什么只有在没有星号(*)的情况下才会打印指向同一个变量的2个指针
- android - Admob 中介原生高级广告不服务于 Facebook 受众网络广告
- html - 我想使用引导程序并排设计两个图像,而不管图像尺寸如何,但 img 不会在 col 标签内自行调整
- android - 如何将数据从 Android 应用程序插入到 Excel 中?
- c++ - 具有多个屏幕的 QT Quick C++ 应用程序
- django - 如何通过href将变量从javascript传递到url:django