zOs/SQL/VIEWDEP

with o (lev, dType, dCreator, dName, bType, bCreator, bName) as
(   select 0, t.type, creator, name, '.', '', t.dbName
        from sysibm.sysTables t
        where t.type = 'T' and t.dbname like 'DGDB9998%'
            --  and (t.dbname like 'BJA_0001'
            --     or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
    union all select o.lev+1, d.dType, d.dCreator, d.dName,
                               o.dType, o.dCreator, o.dName
        from o, sysibm.sysviewdep d
        where d.bcreator = o.dCreator and d.bName = o.dName
            -- and d.bType = o.dType
            and o.lev < 999999
    union all select o.lev+1, a.Type, a.creator, a.name,
                               o.dType, o.dCreator, o.dName
        from o, sysibm.systables a
        where a.tbCreator = o.dCreator and a.tbName = o.dName
            and a.type = 'A' and o.lev < 999999
)
select distinct dType, char(dCreator, 12), char(dName, 20)
             ,   bType, char(bCreator, 12), char(bName, 20)
    from o
 -- where dType = 'A' -- and                      bCreator <> 'ODV'
    order by 3, 2
;
select min(lev), dType, char(dCreator, 12), char(dName, 20)
          -- ,   bType, char(bCreator, 12), char(bName, 20)
    from o
    group by dType, dCreator, dName
    order by dName, 1
;
select min(lev), -- count(*),
        dType, char(strip(dCreator)||'.'|| dName, 30)
    from o
    group by dType, dCreator, dName
    order by dName, dCreator
;