Crystal Report - Help Adding Fields to Existing Query

 1 Replies
 1 Subscribed to this topic
 22 Subscribed to this forum
Sort:
Author
Messages
Chris-T
New Member Send Private Message
Posts: 1
New Member
Good afternoon, Let me start by stating that while I'm a DB person at my local hospital, I have never worked with Lawson data before. I've been requested to create an employee history report and thanks to the talented folks here, I have very nearly what I need. Would someone be able to assist me in adding two fields to this query - I'm looking to add the employee's prior supervisor and current supervisor (much like the current position and prior position). I believe the data I'm looking for is in the PAEMPPOS table, but I'm not entirely certain how to add it to this existing query. SELECT * FROM ( SELECT PAH.COMPANY ,EMP.PROCESS_LEVEL ,PAH.EMPLOYEE ,PAH.EFFECT_DATE ,PAH.ACTION_CODE ,PAH.REASON_01 ,PAH.REASON_02 ,EMP.LAST_NAME ,EMP.FIRST_NAME ,EMP.MIDDLE_INIT ,PEM.SEX ,PEM.EEO_CLASS ,EMP.POSITION ,COALESCE(( SELECT A_VALUE FROM ( SELECT COMPANY ,EMPLOYEE ,BEG_DATE ,A_VALUE FROM PRODLAW.HRHISTORY HRH WHERE HRH.FLD_NBR = 126 ORDER BY BEG_DATE DESC ) CUR_POS WHERE CUR_POS.COMPANY = PAH.COMPANY AND CUR_POS.EMPLOYEE = PAH.EMPLOYEE AND CUR_POS.BEG_DATE <= PAH.EFFECT_DATE AND rownum = 1 ), ' ') AS CUR_POSITION ,COALESCE(( SELECT A_VALUE FROM ( SELECT COMPANY ,EMPLOYEE ,BEG_DATE ,A_VALUE FROM PRODLAW.HRHISTORY HRH WHERE HRH.FLD_NBR = 126 ORDER BY BEG_DATE DESC ) PREV_POSITION WHERE PREV_POSITION.COMPANY = PAH.COMPANY AND PREV_POSITION.EMPLOYEE = PAH.EMPLOYEE AND PREV_POSITION.BEG_DATE < PAH.EFFECT_DATE AND rownum = 1 ), ' ') AS PREV_POSITION ,COALESCE(( SELECT A_VALUE FROM ( SELECT COMPANY ,EMPLOYEE ,BEG_DATE ,A_VALUE FROM PRODLAW.HRHISTORY HRH WHERE HRH.FLD_NBR = 20 ORDER BY BEG_DATE DESC ) CUR_STATUS WHERE CUR_STATUS.COMPANY = PAH.COMPANY AND CUR_STATUS.EMPLOYEE = PAH.EMPLOYEE AND CUR_STATUS.BEG_DATE <= PAH.EFFECT_DATE AND rownum = 1 ), ' ') AS CUR_STATUS ,COALESCE(( SELECT A_VALUE FROM ( SELECT COMPANY ,EMPLOYEE ,BEG_DATE ,A_VALUE FROM PRODLAW.HRHISTORY HRH WHERE HRH.FLD_NBR = 20 ORDER BY BEG_DATE DESC ) PREV_STATUS WHERE PREV_STATUS.COMPANY = PAH.COMPANY AND PREV_STATUS.EMPLOYEE = PAH.EMPLOYEE AND PREV_STATUS.BEG_DATE < PAH.EFFECT_DATE AND rownum = 1 ), ' ') AS PREV_STATUS FROM PRODLAW.PERSACTHST PAH LEFT OUTER JOIN PRODLAW.EMPLOYEE EMP ON (EMP.COMPANY = PAH.COMPANY) AND (EMP.EMPLOYEE = PAH.EMPLOYEE) LEFT OUTER JOIN PRODLAW.PAEMPLOYEE PEM ON (PEM.COMPANY = PAH.COMPANY) AND (PEM.EMPLOYEE = PAH.EMPLOYEE) WHERE (PAH.COMPANY = 1000) AND (PAH.EFFECT_DATE BETWEEN to_date('2000-01-01', 'yyyy-mm-dd') AND to_date('2016-12-31', 'yyyy-mm-dd') ) ) WHERE CUR_POSITION <> PREV_POSITION OR CUR_STATUS <> PREV_STATUS; Thanks in advance for helping out a poor soul :)
Jeff Shumate
Advanced Member Send Private Message
Posts: 31
Advanced Member
Our setup has Supervisor easily found in the EMPLOYEE table, but you could grab from PAEMPPOS if you have it set up, and your EEs can have multiple positions. I believe to get the prior supervisor, you will have to look at HRHISTORY, and HR10 will have to be set up to capture changes to the supervisor field.