Ajax,
that gave me two records for the 1st MemberID
This is what I ended up doing:
1. Query1 - Get the Max on Rate Effective, Monthly_Factor, Factor
Code:
SELECT AdvancedDues.MemberId, AdvancedDues.JobclassId, AdvancedDues.BargainingUnitId, AdvancedDues.EffectiveDateMbrPosition, AdvancedDues.dba_local_bu_jobclass_effectivedate, AdvancedDues.type, AdvancedDues.dba_local_member_status_effectivedate, AdvancedDues.dba_local_member_status_member_type, AdvancedDues.bu_jobclass_seq, AdvancedDues.dba_local_bu_rate_member_type, Max(AdvancedDues.dba_local_bu_rate_effectivedate) AS MaxOfdba_local_bu_rate_effectivedate, Max(AdvancedDues.bu_rate_seq) AS MaxOfbu_rate_seq, Max(AdvancedDues.monthly_factor) AS MaxOfmonthly_factor, Max(AdvancedDues.factor) AS MaxOffactor, AdvancedDues.ssnFROM AdvancedDues
GROUP BY AdvancedDues.MemberId, AdvancedDues.JobclassId, AdvancedDues.BargainingUnitId, AdvancedDues.EffectiveDateMbrPosition, AdvancedDues.dba_local_bu_jobclass_effectivedate, AdvancedDues.type, AdvancedDues.dba_local_member_status_effectivedate, AdvancedDues.dba_local_member_status_member_type, AdvancedDues.bu_jobclass_seq, AdvancedDues.dba_local_bu_rate_member_type, AdvancedDues.ssn;
then
2. Query2 -
Code:
SELECT AdvancedDues.MemberId, AdvancedDues.JobclassId, AdvancedDues.BargainingUnitId, AdvancedDues.EffectiveDateMbrPosition, AdvancedDues.dba_local_bu_jobclass_effectivedate, AdvancedDues.type, AdvancedDues.dba_local_member_status_effectivedate, AdvancedDues.dba_local_member_status_member_type, AdvancedDues.bu_jobclass_seq, AdvancedDues.dba_local_bu_rate_member_type, Max(AdvancedDues.dba_local_bu_rate_effectivedate) AS MaxOfdba_local_bu_rate_effectivedate1, Max(AdvancedDues.bu_rate_seq) AS MaxOfbu_rate_seq1, Max(AdvancedDues.monthly_factor) AS MaxOfmonthly_factor1, Max(AdvancedDues.factor) AS MaxOffactor1, AdvancedDues.ssnFROM AdvancedDues LEFT JOIN ObtainBalances ON (AdvancedDues.MemberId = ObtainBalances.MemberId) AND (AdvancedDues.[dba_local_bu_rate_effectivedate] = ObtainBalances.[MaxOfdba_local_bu_rate_effectivedate])
GROUP BY AdvancedDues.MemberId, AdvancedDues.JobclassId, AdvancedDues.BargainingUnitId, AdvancedDues.EffectiveDateMbrPosition, AdvancedDues.dba_local_bu_jobclass_effectivedate, AdvancedDues.type, AdvancedDues.dba_local_member_status_effectivedate, AdvancedDues.dba_local_member_status_member_type, AdvancedDues.bu_jobclass_seq, AdvancedDues.dba_local_bu_rate_member_type, AdvancedDues.ssn, ObtainBalances.MaxOfdba_local_bu_rate_effectivedate
HAVING (((ObtainBalances.MaxOfdba_local_bu_rate_effectivedate) Is Null));
May not be the best, it is giving me the result sought.
if anyone can write a better and faster way, please let me know.
Thank you