SELECT TH.TRANSACTION_HEADER_ID TRANSACTION_HEADER_ID , BC.BOOK_TYPE_CODE BOOK_TYPE_CODE , DP.PERIOD_COUNTER PERIOD_COUNTER , AD.ASSET_ID , FB.COST FROM FA_BOOKS FB , FA_CALENDAR_PERIODS CP , FA_DEPRN_PERIODS DP , FA_TRANSACTION_HEADERS TH , FA_ASSET_HISTORY AH , FA_ADDITIONS AD , FA_BOOK_CONTROLS BC WHERE AH.ASSET_ID = AD.ASSET_ID AND FB.BOOK_TYPE_CODE = BC.BOOK_TYPE_CODE AND FB.ASSET_ID = AD.ASSET_ID AND FB.TRANSACTION_HEADER_ID_IN = TH.TRANSACTION_HEADER_ID AND DP.BOOK_TYPE_CODE = BC.BOOK_TYPE_CODE AND CP.CALENDAR_TYPE = BC.DEPRN_CALENDAR AND TH.ASSET_ID = AD.ASSET_ID AND TH.BOOK_TYPE_CODE= DP.BOOK_TYPE_CODE AND TH.TRANSACTION_HEADER_ID >= AH.TRANSACTION_HEADER_ID_IN AND TH.TRANSACTION_HEADER_ID < NVL(AH.TRANSACTION_HEADER_ID_OUT , TH.TRANSACTION_HEADER_ID + 1) AND TH.TRANSACTION_DATE_ENTERED BETWEEN CP.START_DATE AND CP.END_DATE AND TH.DATE_EFFECTIVE BETWEEN DP.PERIOD_OPEN_DATE AND NVL(DP.PERIOD_CLOSE_DATE , TH.DATE_EFFECTIVE)