Try this, it looks right. I'm concerned about the 1998 Bonus row. That's not in your sample output. Is that an oversight or is my cod wrong?CREATE TABLE #APPOINTEE_HISTORY(Emp_No INT, Change_Date DATETIME, BasicPay Money)CREATE TABLE #APPOINTEE_REMUNERATION_HISTORY(Emp_No INT, Allowance VARCHAR(20), Effective_Date DATETIME, End_Date DATETIME, Amount MONEY)INSERT INTO #APPOINTEE_HISTORY(Emp_No, Change_Date, BasicPay)VALUES(555555, '1998-03-16', 38000.0)INSERT INTO #APPOINTEE_HISTORY(Emp_No, Change_Date, BasicPay)VALUES(555555, '1998-11-01', 36100.0)INSERT INTO #APPOINTEE_HISTORY(Emp_No, Change_Date, BasicPay)VALUES(555555, '1999-05-01', 45600.0)INSERT INTO #APPOINTEE_REMUNERATION_HISTORY(Emp_No, Allowance, Effective_Date, End_Date, Amount)VALUES(555555, 'BONUS', '1998-03-16', '2000-08-31', 3000.0) INSERT INTO #APPOINTEE_REMUNERATION_HISTORY(Emp_No, Allowance, Effective_Date, End_Date, Amount)VALUES(555555, 'ACCUM', '1998-11-01', '2002-05-31', 1900.0) SELECT a.Emp_No, a.Change_Date, a.BasicPay, h.Allowance, h.AmountFROM #APPOINTEE_HISTORY aLEFT JOIN #APPOINTEE_REMUNERATION_HISTORY h ON h.Emp_No = a.Emp_No AND a.Change_Date BETWEEN h.Effective_Date AND h.End_DateORDER BY a.Change_DateDROP TABLE #APPOINTEE_REMUNERATION_HISTORYDROP TABLE #APPOINTEE_HISTORY
Michael<Yoda>Use the Search page you must. Find the answer you will.</Yoda>