gpt4 book ai didi

sql - 将sql中两个不同表的相同列名数据合并为包含null的结果集

转载 作者:行者123 更新时间:2023-12-02 02:11:02 25 4
gpt4 key购买 nike

我有下面两个表格,我需要将它们合并到我的每日报告中。

表 1:Resource_Created

FirstName LastName ObjDate 资源登录

TestDemo1        TestDemo1       5-Oct-12         AD         TESTDEMO1

表 2:Resource_Deleted

FirstName LastName ObjDate 资源登录

TestDemo4        TestDemo4       5-Oct-12         AD         TESTDEMO4

TestDemo5 TestDemo5 5-Oct-12 AD TESTDEMO5

TestDemo6 TestDemo6 5-Oct-12 AD TESTDEMO6

TestDemo4 TestDemo4 5-Oct-12 Bio TESTDEMO4

TestDemo4 TestDemo4 5-Oct-12 VPN TESTDEMO4

TestDemo5 TestDemo5 5-Oct-12 VPN TESTDEMO5

TestDemo6 TestDemo6 5-Oct-12 VPN TESTDEMO6

我分别写了两个查询

查询 1:

select distinct Resource as Resource, 
count (distinct Login) as CountRes
from Resource_Created
where ObjDate between '4-Oct-12' and '6-Oct-12'
group by Resource ;

结果:

资源计数资源

 AD        1

查询 2:

select distinct Resource as Resource, 
count (distinct Login) as CountRes
from Resource_Deleted
where ObjDate between '4-Oct-12' and '6-Oct-12'
group by Resource ;

结果

资源计数资源

AD          3

VPN 3

Bio 1

我希望合并这两个查询,以便我可以用一个表显示这些值。

select COALESCE (Resource_Created.Resource, Resource_Deleted.Resource) as Resource , 
count (distinct Resource_Created.usrlogin) as aobj,
count (distinct Resource_Deleted.usrlogin) as bobj
FROM target_failed FULL OUTER JOIN target_resource
on Resource_Created.Resource = Resource_Deleted.Resource
where
Resource_Created.ObjDate between '04-OCT-2012' and '06-OCT-2012' and
Resource_Deleted.ObjDate between '04-OCT-2012' and '06-OCT-2012'
group by COALESCE(Resource_Created.Resource, Resource_Deleted.Resource);

我的结果是

**Resource       aobj         bobj**

AD 1 3

预期结果

资源 aobj bobj

 AD             1          3

VPN Null 3

Bio Null 1

谁能帮我解决这个问题。我只是一个编写基本 sql 查询的 OO 开发人员。将不胜感激。

最佳答案

简单地在 from 语句上使用 sub sql

select 
ResourceI as rs, sum (CreatedLogin) as CountCreated,
sum (DeletedLogin) as CountDeleted
from
(select
ObjDate,
Resource ,
1 as DeletedLogin,
0 as CreatedLogin
from Resource_Deleted
union all
select ObjDate,
Resource ,
0 as DeletedLogin,
1 as CreatedLogin
from Resource_Created
) TABLE_ALL
where ObjDate between TO_DATE('4-Oct-12') and TO_DATE('6-Oct-12')
group by Resource

关于sql - 将sql中两个不同表的相同列名数据合并为包含null的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12881165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com