AS
 -- programs
 	SELECT 5 AS resType,
		 p.programid AS dbId,
		 cvr.version AS version,
		 pa.AliasName AS resName,
		 pth.PathStr as resPath,
		 CAST(p.ProgramTypeID AS NVARCHAR) AS progType,
         null as qualifier
	FROM  Programs p
		INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId and pa.AliasType = 0
		INNER JOIN  Occurrences  occ ON occ.OccurId = p.OccurID AND occ.ResourceType = 5
		INNER JOIN  Paths pth ON pth.PathID = occ.PathID
		INNER JOIN  VC_ContainerVSResources cvr ON cvr.idresource = p.programid
										 AND cvr.ResourceTypeID = 5
UNION
   -- jcl
    SELECT 22 as resType,
			 jj.JobId as dbId,
			 cvr.version as version,
			 jj.JobName as resName,
			 jp.ResourceFilePath as resPath,
			 '' as progType,
             null as qualifier
    FROM  JCLJob jj
	   INNER JOIN  JCLPosition jp ON jp.PositionID=jj.PositionID
	   INNER JOIN  VC_ContainerVsResources cvr ON cvr.IDResource=jj.JobID AND cvr.ResourceTypeID = 22
	WHERE jj.BuildStatus = 1
UNION
   -- sqltable
     SELECT 1 as resType,
			 tt.SqlTableId as dbId,
			 -100 as version,
			 tt.TableName as resName,
			 null as resPath,
			 '' as progType,
             null as qualifier
    FROM  SqlTables tt
UNION
  -- sqlfield
    SELECT 187 as resType,
			 f.SqlFieldID as dbId,
			 -100 as version,
			 f.FieldName as resName,
			 null as resPath,
			 '' as progType,
             t.TableName as qualifier
   FROM  SqlFields f INNER JOIN SqlTables t ON t.SqlTableID = f.SqlTableID
UNION
  --  bms screen
    SELECT 6 as resType,
			 bs.BMSId as dbId,
			 -100 as version,
			 bs.BMSName as resName,
			 null as resPath,
			 '' as progType,
             bm.BMSName as qualifier
FROM  BMS bs INNER JOIN BMS bm ON bm.IsMapSet = 0 and bm.AncestorId = bs.BMSId
UNION
  -- imsTransaction
      SELECT 20 as resType,
			 ResourceID as dbId,
			 -100 as version,
			 Name as resName,
			 null as resPath,
			 '' as progType,
             null as qualifier
    FROM  Resources    where ResourceType = 20
UNION
   --ims db segment
    SELECT 209 as resType,
			 IMSDBSegments.SegmentId as dbId,
			 -100 as version,
			 IMSDBSegments.SegmentName as resName,
			 null as resPath,
			 '' as progType,
             IMSDBInfo.DBName as qualifier
FROM IMSDBSegments INNER JOIN IMSDBInfo ON IMSDBInfo.DBId = IMSDBSegments.DBId
UNION
      --ims message
     SELECT 212 as resType,
			 IMSMapIOFormat.Id as dbId,
			 -100 as version,
			 IMSMapIOFormat.Name as resName,
			 null as resPath,
			 '' as progType,
             IMSMaps.MapName as qualifier
 FROM IMSMapIOFormat INNER JOIN IMSMaps ON IMSMaps.MapId = IMSMapIOFormat.IMSMapId
ORDER BY resType, dbId
