表1有4列,模拟数据看起来像这样......
MASTER_ID SUB_ID DESC Percent
1234 ABC TEXT 80
1234 XYZ TEXT2 20
1234 XYZ TEXT4 30
9876 XYZ TEXT2 20
9876 XYZ TEXT5 10
9876 ABC TEXT1 20
表2包含每个MASTER_ID的DESC的不同值,即表1的第3列.......
MASTER_ID DESC
1234 TEXT
1234 TEXT2
1234 TEXT4
9876 TEXT2
9876 TEXT5
9876 TEXT1
我需要查看TABLE1并找出每个特定MASTER_ID的每个SUB_ID缺少哪个DESC。每个MASTER_ID与另一个无关......这意味着我不应该看到MASTER_PLAN中不存在的描述。例如,MASTER_ID 9876的DESC为TEXT5。此DESC应仅出现在MASTER_ID的9876 DESC中。 SUB_ID可以存在于不同的MASTER_ID中。但如前所述,每个MASTER_ID都应该被认为是独立的。
决赛桌应该是这样的......
MASTER_ID SUB_ID DESC Percent
1234 ABC TEXT 80
1234 ABC TEXT2 0
1234 ABC TEXT4 0
1234 XYZ TEXT2 20
1234 XYZ TEXT4 30
1234 XYZ TEXT 0
9876 XYZ TEXT2 20
9876 XYZ TEXT5 10
9876 XYZ TEXT1 0
9876 ABC TEXT1 20
9876 ABC TEXT2 0
9876 ABC TEXT5 0
答案 0 :(得分:0)
您可以尝试以下查询
select t3.master_id, t3.sub_id, t3.Desc1, case when t4.percentage is null then 0 else t4.percentage end percentage
from
(select distinct t1.master_id, sub_id, t2.Desc1
from table1 t1
cross join table2 t2
where t1.master_id = t2.master_id) t3
left join table1 t4
on t4.master_id = t3.master_id
and t3.sub_id = t4.sub_id
and t3.desc1 = t4.desc1
以上查询给出了以下结果
希望这可以帮助你。