Tema: help me!!!
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2007, 17:51
Avatar de zeusdelolimpo
zeusdelolimpo
 
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 16 años, 9 meses
Puntos: 0
Sonrisa help me!!!

Tengo un problema nesesito, traer registros de varias tablas concretamente esta asi los campos que nesesito :

A.EMPLID, A.LAST_NAME, A.SECOND_LAST_NAME, A.FIRST_NAME, A.MIDDLE_NAME, A.BIRTHDATE, A.MAR_STATUS, A.SEX,
B.HOURLY_RT, B.CURRENCY_CD, B.PAYGROUP, B.COMPANY, B.GL_PAY_TYPE, B.ACTION, B.ACTION_REASON, B.EFFDT, B.ANNUAL_RT, B.DEPTID, B.FLSA_STATUS,
C.NATIONAL_ID_TYPE,
D.SWT_MAR_STATUS,
E.ADDRESS1, E.ADDRESS2, E.CITY, E.COUNTRY, E.POSTAL,
F.PHONE

y pertenecen a estas tablas :

PS_PERSONAL_DATA A, PS_JOB B, PS_PERS_NID C, PS_STATE_TAX_DATA D, PS_ADDRESSES E, PS_EMERGENCY_CNTCT F, PS_EMPLOYMENT G, PS_JOB_EARNS_DIST H

y todas las tablas se unen por el ID, que es "EMPLID";


A parte tengo que seleccionarla maxima fecha effectiva(EFFDT) [PS_JOB, PS_JOB_EARNS_DIST,PS_STATE_TAX_DATA,PS_ADDRESSES]
y la maxima secuencia efectiva(EFFSEQ)[PS_JOB, PS_JOB_EARNS_DIST ] y esto lo ago con esto(es ejemplo solo de una):

AND B.EFFDT = (SELECT MAX (PRIMERA.EFFDT)FROM PS_JOB PRIMERA WHERE B.EMPLID = PRIMERA.EMPLID)
AND B.EFFSEQ = (SELECT MAX (SEGUNDA.EFFSEQ)FROM PS_JOB SEGUNDA WHERE B.EMPLID = SEGUNDA.EMPLID)

Mi problema surge cuando quiero traer los registros y hago la consulta completa por que las tablas no tienen el mismo numero de
registros

nombre de la tabla No. de registros
PS_PERSONAL_DATA 8027
PS_JOB 2956
PS_PERS_NID 8248
PS_STATE_TAX_DATA 875
PS_ADDRESSES 7660
PS_EMERGENCY_CNTCT 15
PS_EMPLOYMENT 2053
PS_JOB_EARNS_DIST 3

mi tabla principal seria (PS_PERSONAL_DATA por que es la que tiene todos los empleados y es en la que me tengo que basar )
y cuando hago mis igualaciones con el ID (EMPLID) no me arroja ningun registro

y me tendria que traer 8027 registros (segun PS_PERSONAL_DATA)

de antemano muchas gracias