Just one datasource in my query: Oracle, it does have a subquery:
SELECT DISTINCT
SYVNAME.SID,
SPBPERS.SPBPERS_SEX,
SGRSATT.SGRSATT_ATTS_CODE,
MAX (SGBSTDN.SGBSTDN_MAJR_CODE_1)
AS MAX_MAJR_CODE_1,
MAX (STVMAJR1.STVMAJR_DESC)
AS MAX_STVMAJR1_DESC,
SGBSTDN.SGBSTDN_TERM_CODE_EFF,
SFBETRM.SFBETRM_ESTS_CODE,
MAX (SGBSTDN.SGBSTDN_MAJR_CODE_1_2)
AS MAX_MAJR_CODE_1_2,
MAX (STVMAJR2.STVMAJR_DESC)
AS MAX_STVMAJR2_DESC,
CASE
WHEN STVMAJR2.STVMAJR_DESC IS NULL THEN STVMAJR1.STVMAJR_DESC
ELSE STVMAJR1.STVMAJR_DESC || ‘/’ || STVMAJR2.STVMAJR_DESC
END
AS FINAL_MAJOR,
SUBSTR (SGRSATT.SGRSATT_ATTS_CODE, 3, 2)
AS CLASS,
‘Class of 20’ || SUBSTR (SGRSATT.SGRSATT_ATTS_CODE, 3, 2)
AS CLASS_OF,
MAX (SGBSTDN.SGBSTDN_DEGC_CODE_1)
AS MAX_SGBSTDN_DEGC_CODE_1,
SYTRESD.STVRESD_2CHAR_CODE,
STVESTS.STVESTS_DESC,
Subquery.PRV_TO_AST
FROM SATURN.SGBSTDN SGBSTDN,
SATURN.STVCAPL STVCAPL,
SATURN.STVMAJR STVMAJR1,
SATURN.STVMAJR STVMAJR2,
SATURN.SFBETRM SFBETRM,
SATURN.SGRSATT SGRSATT,
SATURN.SYTRESD SYTRESD,
GENYALE.SYVNAME SYVNAME,
SATURN.SHRDGMR SHRDGMR,
SATURN.SPBPERS SPBPERS,
SATURN.STVESTS STVESTS,
(SELECT CASE
WHEN SPRCMNT_1.SPRCMNT_CMTT_CODE = ‘PRV’ THEN ‘*’
ELSE ‘’
END
AS PRV_TO_AST,
SPRCMNT_1.SPRCMNT_PIDM
FROM SATURN.SPRCMNT SPRCMNT_1
WHERE (SPRCMNT_1.SPRCMNT_CMTT_CODE = ‘PRV’)) Subquery
WHERE (SGRSATT.SGRSATT_ATTS_CODE LIKE ‘YC%’)
AND (SGBSTDN.SGBSTDN_TERM_CODE_EFF = :Term)
AND (SFBETRM.SFBETRM_ESTS_CODE IN (‘AB’,
‘AT’,
‘EL’,
‘FC’,
‘HT’,
‘LA’,
‘LT’))
AND (CASE
WHEN STVMAJR2.STVMAJR_DESC IS NULL THEN STVMAJR1.STVMAJR_DESC
ELSE STVMAJR1.STVMAJR_DESC || ‘/’ || STVMAJR2.STVMAJR_DESC
END LIKE
‘%’ || :Major || ‘%’)
AND (SGBSTDN.SGBSTDN_STST_CODE = ‘AS’)
AND (SGBSTDN.SGBSTDN_LEVL_CODE = ‘UG’)
AND (SPBPERS.SPBPERS_DEAD_IND IS NULL)
AND (SGBSTDN.SGBSTDN_CAPL_CODE = STVCAPL.STVCAPL_CODE(+))
AND (SGBSTDN.SGBSTDN_MAJR_CODE_1 = STVMAJR1.STVMAJR_CODE(+))
AND (SGBSTDN.SGBSTDN_TERM_CODE_EFF = SFBETRM.SFBETRM_TERM_CODE)
AND (SGBSTDN.SGBSTDN_PIDM = SFBETRM.SFBETRM_PIDM)
AND (SFBETRM.SFBETRM_ESTS_CODE = STVESTS.STVESTS_CODE)
AND (SFBETRM.SFBETRM_PIDM = SHRDGMR.SHRDGMR_PIDM)
AND (SFBETRM.SFBETRM_PIDM = SPBPERS.SPBPERS_PIDM)
AND (SGBSTDN.SGBSTDN_PIDM = SYVNAME.PIDM)
AND (SGBSTDN.SGBSTDN_RESD_CODE = SYTRESD.STVRESD_CODE(+))
AND (SGBSTDN.SGBSTDN_PIDM = SGRSATT.SGRSATT_PIDM)
AND (SGBSTDN.SGBSTDN_TERM_CODE_EFF = SGRSATT.SGRSATT_TERM_CODE_EFF)
AND (SGBSTDN.SGBSTDN_MAJR_CODE_1_2 = STVMAJR2.STVMAJR_CODE(+))
AND (SFBETRM.SFBETRM_PIDM = Subquery.SPRCMNT_PIDM(+))
GROUP BY SGBSTDN.SGBSTDN_MAJR_CODE_1,
SGBSTDN.SGBSTDN_MAJR_CODE_1_2,
CASE
WHEN STVMAJR2.STVMAJR_DESC IS NULL THEN STVMAJR1.STVMAJR_DESC
ELSE STVMAJR1.STVMAJR_DESC || ‘/’ || STVMAJR2.STVMAJR_DESC
END,
SYVNAME.SID,
SPBPERS.SPBPERS_SEX,
SGRSATT.SGRSATT_ATTS_CODE,
SGBSTDN.SGBSTDN_TERM_CODE_EFF,
SFBETRM.SFBETRM_ESTS_CODE,
SGBSTDN.SGBSTDN_DEGC_CODE_1,
SYTRESD.STVRESD_2CHAR_CODE,
SUBSTR (SGRSATT.SGRSATT_ATTS_CODE, 3, 2),
STVESTS.STVESTS_DESC,
STVMAJR1.STVMAJR_DESC,
Subquery.PRV_TO_AST,
‘Class of 20’ || SUBSTR (SGRSATT.SGRSATT_ATTS_CODE, 3, 2)