I know there is away to do this...I just can't remember (too many programming languages in my head...and I may be dis-remembering something else) I have this query
this issue I'm having it is returning the cartesian set of the data.
For example... if the person has 5 roles and 5 emails I will get 25 rows for that person.
Isn't there a way to get all the emails to return as one item, and all the roles as one item...
I think there is ....I just can't remember
CODE:
SELECT DISTINCT
saturn.spriden.spriden_id AS cwid,
saturn.spriden.spriden_first_name AS "first_name",
saturn.spriden.spriden_last_name AS "last_name",
gobtpac.gobtpac_external_user AS "username",
'***-**-'
|| substr(saturn.spbpers.spbpers_ssn, - 4) AS "ssn",
to_char(saturn.spbpers.spbpers_birth_date, 'MON-DD-YYYY') AS "dob",
saturn.spbpers.spbpers_pref_first_name AS "prefname",
general.goremal.goremal_email_address AS "email",
general.gorirol.gorirol_role AS "Role",
general.gobintl.gobintl_passport_id AS "Passport ID",
payroll.pebempl.pebempl_last_work_date AS "contract end date"
FROM
gobtpac
INNER JOIN saturn.spriden ON gobtpac.gobtpac_pidm = saturn.spriden.spriden_pidm
INNER JOIN saturn.spbpers ON saturn.spriden.spriden_pidm = saturn.spbpers.spbpers_pidm
LEFT JOIN general.goremal ON saturn.spriden.spriden_pidm = general.goremal.goremal_pidm
LEFT JOIN general.gorirol ON saturn.spriden.spriden_pidm = general.gorirol.gorirol_pidm
LEFT JOIN general.gobintl ON saturn.spriden.spriden_pidm = general.gobintl.gobintl_pidm
LEFT JOIN payroll.pebempl ON saturn.spriden.spriden_id = payroll.pebempl.pebempl_pidm
WHERE
saturn.spriden.spriden_id LIKE ( '%' )
AND upper(saturn.spriden.spriden_last_name) LIKE ( '%' )
AND saturn.spriden.spriden_change_ind IS NULL
AND general.goremal.goremal_emal_code IN ( 'CO', 'AL', 'OK', 'BU', 'PE' )
AND general.goremal.goremal_status_ind = 'A'
AND general.gorirol.gorirol_role_group = 'INTCOMP'
ORDER BY
"last_name",
"first_name",
cwid,
"Role"