我有一个ORACLE表,从那里我也必须找到不存在的数据。
在表的第二列中表示服务的状态,如果服务运行良好,有时状态将不会出现。因此需要一个SQL来取出值
表列和数据是:-
Service Name, Status of Service, Count
ABCD, Available, 4
ABCD, Non Available, 5
XYZ, Non Available, 4
QWERTY, Available, 2
请帮助进行以下查询的sql查询,如果前2列不可用,则计数应为0:-
Service Name, Status of Service, Count
ABCD, Available, 4
ABCD, Non Available, 5
XYZ, Available, 0
XYZ, Non Available, 4
QWERTY, Available, 2
QWERTY, Non Available, 0
答案 0 :(得分:0)
使用cross join
和left join
上的现有表生成服务和状态的所有组合。
select serv.service_name, serv_stat.status_service, coalesce(t.countCol,0)
from (select distinct service_name from tbl) serv
cross join (select distinct status_service from tbl) serv_stat
left join tbl t on t.service_name = serv.service_name and serv_stat.status_service = t.status_service