Friday, 4 November 2016

Remaining Life of an Asset for STL Method - Oracle EBS R12

http://fixedasstets.blogspot.com/2016/11/select-decode-books.html


PLSQL Query to Get Remaining Life of an Asset


1st Query

SELECT fb.ASSET_NUMBER,
       
       fab.BOOK_TYPE_CODE
       
       /*    ,
       
       decode(fab.conversion_date,
       
       NULL,
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.prorate_date)),
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.deprn_start_date))) REM_LIFE_IN_MON*/
       
       -----------------------------------
       
      ,
       
       (SELECT
        
         case
         
           when decode(faab.conversion_date,
                       
                       NULL,
                       
                       faab.life_in_months -
                       
                       floor(months_between(fdpp.calendar_period_close_date,
                                            
                                            faab.prorate_date)),
                       
                       faab.life_in_months -
                       
                       floor(months_between(fdpp.calendar_period_close_date,
                                            
                                            faab.deprn_start_date))) <= 0 then
           
            0
         
           else
           
            decode(faab.conversion_date,
                   
                   NULL,
                   
                   faab.life_in_months -
                   
                   floor(months_between(fdpp.calendar_period_close_date,
                                        
                                        faab.prorate_date)),
                   
                   faab.life_in_months -
                   
                   floor(months_between(fdpp.calendar_period_close_date,
                                        
                                        faab.deprn_start_date)))
         
         end
        
          FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
        
         where faab.ASSET_ID = fbb.ASSET_ID
              
           and faab.date_ineffective IS NULL
              
           AND fdpp.period_counter =
              
               (SELECT MAX(dpp.period_counter)
                
                  FROM fa_deprn_periods dpp
                
                 where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                
                )
              
           and faab.ASSET_ID = fab.ASSET_ID
              
           and fb.ASSET_ID = fbb.ASSET_ID
              
           and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
              
           and fdp.PERIOD_COUNTER = fdpp.PERIOD_COUNTER
              
           and fdp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
        
        --   and fbb.ASSET_ID = b.ASSET_ID
        
        --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
        
        ) REM_LIFE_IN_MON
       
       ------------------------------------------
       
      ,
       
       TRUNC((SELECT
              
               case
               
                 when decode(faab.conversion_date,
                             
                             NULL,
                             
                             faab.life_in_months -
                             
                             floor(months_between(fdpp.calendar_period_close_date,
                                                  
                                                  faab.prorate_date)),
                             
                             faab.life_in_months -
                             
                             floor(months_between(fdpp.calendar_period_close_date,
                                                  
                                                  faab.deprn_start_date))) <= 0 then
                 
                  0
               
                 else
                 
                  decode(faab.conversion_date,
                         
                         NULL,
                         
                         faab.life_in_months -
                         
                         floor(months_between(fdpp.calendar_period_close_date,
                                              
                                              faab.prorate_date)),
                         
                         faab.life_in_months -
                         
                         floor(months_between(fdpp.calendar_period_close_date,
                                              
                                              faab.deprn_start_date)))
               
               end
              
                FROM fa_books faab,
                     
                     fa_deprn_periods fdpp,
                     
                     fa_additions_b fbb
              
               where faab.ASSET_ID = fbb.ASSET_ID
                    
                 and faab.date_ineffective IS NULL
                    
                 AND fdpp.period_counter =
                    
                     (SELECT MAX(dpp.period_counter)
                      
                        FROM fa_deprn_periods dpp
                      
                       where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                      
                      )
                    
                 and faab.ASSET_ID = fab.ASSET_ID
                    
                 and fb.ASSET_ID = fbb.ASSET_ID
                    
                 and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                    
                 and fdp.PERIOD_COUNTER = fdpp.PERIOD_COUNTER
                    
                 and fdp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
              
              --   and fbb.ASSET_ID = b.ASSET_ID
              
              --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
              
              ) / 12) YEARS
       
       ---------------------------------
       
      ,
       
       (SELECT
        
         case
         
           when decode(faab.conversion_date,
                       
                       NULL,
                       
                       faab.life_in_months -
                       
                       floor(months_between(fdpp.calendar_period_close_date,
                                            
                                            faab.prorate_date)),
                       
                       faab.life_in_months -
                       
                       floor(months_between(fdpp.calendar_period_close_date,
                                            
                                            faab.deprn_start_date))) <= 0 then
           
            0
         
           else
           
            decode(faab.conversion_date,
                   
                   NULL,
                   
                   faab.life_in_months -
                   
                   floor(months_between(fdpp.calendar_period_close_date,
                                        
                                        faab.prorate_date)),
                   
                   faab.life_in_months -
                   
                   floor(months_between(fdpp.calendar_period_close_date,
                                        
                                        faab.deprn_start_date)))
         
         end
        
          FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
        
         where faab.ASSET_ID = fbb.ASSET_ID
              
           and faab.date_ineffective IS NULL
              
           AND fdpp.period_counter =
              
               (SELECT MAX(dpp.period_counter)
                
                  FROM fa_deprn_periods dpp
                
                 where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                
                )
              
           and faab.ASSET_ID = fab.ASSET_ID
              
           and fb.ASSET_ID = fbb.ASSET_ID
              
           and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
              
           and fdp.PERIOD_COUNTER = fdpp.PERIOD_COUNTER
              
           and fdp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
        
        --   and fbb.ASSET_ID = b.ASSET_ID
        
        --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
        
        ) - TRUNC((SELECT
                   
                    case
                    
                      when decode(faab.conversion_date,
                                  
                                  NULL,
                                  
                                  faab.life_in_months -
                                  
                                  floor(months_between(fdpp.calendar_period_close_date,
                                                       
                                                       faab.prorate_date)),
                                  
                                  faab.life_in_months -
                                  
                                  floor(months_between(fdpp.calendar_period_close_date,
                                                       
                                                       faab.deprn_start_date))) <= 0 then
                      
                       0
                    
                      else
                      
                       decode(faab.conversion_date,
                              
                              NULL,
                              
                              faab.life_in_months -
                              
                              floor(months_between(fdpp.calendar_period_close_date,
                                                   
                                                   faab.prorate_date)),
                              
                              faab.life_in_months -
                              
                              floor(months_between(fdpp.calendar_period_close_date,
                                                   
                                                   faab.deprn_start_date)))
                    
                    end
                   
                     FROM fa_books faab,
                          
                          fa_deprn_periods fdpp,
                          
                          fa_additions_b fbb
                   
                    where faab.ASSET_ID = fbb.ASSET_ID
                         
                      and faab.date_ineffective IS NULL
                         
                      AND fdpp.period_counter =
                         
                          (SELECT MAX(dpp.period_counter)
                           
                             FROM fa_deprn_periods dpp
                           
                            where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                           
                           )
                         
                      and faab.ASSET_ID = fab.ASSET_ID
                         
                      and fb.ASSET_ID = fbb.ASSET_ID
                         
                      and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                         
                      and fdp.PERIOD_COUNTER = fdpp.PERIOD_COUNTER
                         
                      and fdp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                   
                   --   and fbb.ASSET_ID = b.ASSET_ID
                   
                   --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                   
                   ) / 12) * 12 MONTHS
       
       -----------------------------------
       
       /*, TRUNC(decode(fab.conversion_date,
       
       NULL,
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.prorate_date)),
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.deprn_start_date))) / 12) YEARS
       
              
       
       ---------------------
       
       ,
       
       decode(fab.conversion_date,
       
       NULL,
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.prorate_date)),
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.deprn_start_date))) -
       
              
       
       TRUNC(decode(fab.conversion_date,
       
       NULL,
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.prorate_date)),
       
       fab.life_in_months -
       
       floor(months_between(fdp.calendar_period_close_date,
       
       fab.deprn_start_date))) / 12) * 12 MONTHS*/
       
       -------------------------------------
       
      ,
       
       (select a.TRANSACTION_TYPE_CODE
        
          from fa_transaction_history_trx_v a
        
         where a.ASSET_ID = fab.ASSET_ID
              
           and a.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
              
           and a.CATEGORY_ID = fb.ASSET_CATEGORY_ID
              
           and a.ASSET_ID = fb.ASSET_ID
              
           and a.BOOK_TYPE_CODE = fdp.BOOK_TYPE_CODE
              
           and a.TRANSACTION_TYPE_CODE = 'FULL RETIREMENT') FULL_RETIREMENT

--------------------

  FROM fa_books fab, fa_deprn_periods fdp, fa_additions_b fb

 where fab.ASSET_ID = fb.ASSET_ID
      
   and fab.date_ineffective IS NULL
      
   AND fdp.period_counter = (SELECT MAX(dp.period_counter)
                             
                               FROM fa_deprn_periods dp
                             
                              where dp.BOOK_TYPE_CODE = fdp.BOOK_TYPE_CODE
                                   
                                and dp.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                             
                             )


 order by to_number(fb.asset_number)

--------------------------------------------------------------------------------------------------------------------------

2nd Query

select fab.BOOK_TYPE_CODE,
     
       fb.ASSET_ID,
     
       fb.ASSET_NUMBER,
     
       fab.DATE_PLACED_IN_SERVICE,
     
       to_char(fab.DATE_PLACED_IN_SERVICE, 'MON-YY') MONTHS_PLACED_IN_SERVICE,
     
       fdp.PERIOD_NAME LAST_DEPRN_RUN,
     
       to_char(ADD_MONTHS((LAST_DAY(fab.DATE_PLACED_IN_SERVICE) + 1), -1),
             
               'DD-MON-YY') START_DATE_PLACED_IN_SERVICE,
     
       TO_CHAR(last_day(fab.DATE_PLACED_IN_SERVICE), 'DD-MON-YY') END_DATE_PLACED_IN_SERVICE,
     
       to_char(ADD_MONTHS((LAST_DAY('01-' || fdp.PERIOD_NAME) + 1), -1),
             
               'DD-MON-YY') START_DATE_DEPRN_RUN,
     
       TO_CHAR(last_day('01-' || fdp.PERIOD_NAME), 'DD-MON-YY') END_DATE_DEPRN_RUN
     
       --,MONTHS_BETWEEN(last_day( '01-'||fdp.PERIOD_NAME),fab.DATE_PLACED_IN_SERVICE) LIFE_USED_IN_MONTHS
     
      ,
     
       fab.LIFE_IN_MONTHS,
     
       /*TRUNC(MONTHS_BETWEEN(last_day('01-' || fdp.PERIOD_NAME),
     
       fab.DATE_PLACED_IN_SERVICE)) LIFE_USED_IN_MONTHS,*/
     
       ----------------------------------------------------------------
     
       NVL(MONTHS_BETWEEN((select trunc(v.DATE_RETIRED, 'MONTH')
                       
                            from fa_retirements_v v
                       
                           where v.ASSET_ID = fb.ASSET_ID
                             
                             and v.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                             
                             and v.ASSET_ID = fb.ASSET_ID
                             
                             and v.TRANSACTION_HEADER_ID_IN =
                             
                                 fab.TRANSACTION_HEADER_ID_IN),
                       
                          trunc(fab.DATE_PLACED_IN_SERVICE, 'MONTH'))
         
          ,
         
           TRUNC(MONTHS_BETWEEN(last_day('01-' || fdp.PERIOD_NAME),
                             
                                fab.DATE_PLACED_IN_SERVICE)) + 1
         
           /*           CEIL(MONTHS_BETWEEN(last_day('01-' || fdp.PERIOD_NAME),
         
           fab.DATE_PLACED_IN_SERVICE))*/
         
           ) TOTAL_LIFE_USED_IN_MONTHS
     
       ------------------------------------------------------             
     
      ,
     
       NVL(fab.life_in_months -
         
           GREATEST(NVL(fab.life_in_months, 0) -
                 
                    MONTHS_BETWEEN((select trunc(v.DATE_RETIRED, 'MONTH')
                                 
                                     from fa_retirements_v v
                                 
                                    where v.ASSET_ID = fb.ASSET_ID
                                       
                                      and v.BOOK_TYPE_CODE =
                                       
                                          fab.BOOK_TYPE_CODE
                                       
                                      and v.ASSET_ID = fb.ASSET_ID
                                       
                                      and v.TRANSACTION_HEADER_ID_IN =
                                       
                                          fab.TRANSACTION_HEADER_ID_IN),
                                 
                                   TRUNC(fab.DATE_PLACED_IN_SERVICE, 'MONTH')),
                 
                    0
                 
                    ),
         
           TRUNC(MONTHS_BETWEEN(last_day('01-' || fdp.PERIOD_NAME),
                             
                                fab.DATE_PLACED_IN_SERVICE)) + 1
         
           /*
         
           CEIL(MONTHS_BETWEEN(last_day('01-' || fdp.PERIOD_NAME),
         
           fab.DATE_PLACED_IN_SERVICE))*/
         
           ) ACTUAL_LIFE_COMPLETED
     
       -----------------------------------
     
       /*      ,
     
       (
     
                 
     
       SELECT decode(faab.conversion_date,
     
       NULL,
     
       faab.life_in_months -
     
       floor(months_between(fdpp.calendar_period_close_date,
     
       faab.prorate_date)),
     
       faab.life_in_months -
     
       floor(months_between(fdpp.calendar_period_close_date,
     
       faab.deprn_start_date)))
     
                 
     
       FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
     
                 
     
       where faab.ASSET_ID = fbb.ASSET_ID
     
       and faab.date_ineffective IS NULL
     
       AND fdpp.period_counter =
     
       (SELECT MAX(dpp.period_counter)
     
       FROM fa_deprn_periods dpp
     
       where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
                         
     
       )
     
       and faab.ASSET_ID = fab.ASSET_ID
     
       and fb.ASSET_ID = fbb.ASSET_ID
     
       and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
     
       and fbb.ASSET_ID = b.ASSET_ID
     
       and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
                 
     
       ) REM_LIFE_IN_MON*/
     
       --------------------------------------------------------
     
      ,
     
       (SELECT
     
         case
       
           when decode(faab.conversion_date,
                     
                       NULL,
                     
                       faab.life_in_months -
                     
                       floor(months_between(fdpp.calendar_period_close_date,
                                         
                                            faab.prorate_date)),
                     
                       faab.life_in_months -
                     
                       floor(months_between(fdpp.calendar_period_close_date,
                                         
                                            faab.deprn_start_date))) <= 0 then
         
            0
       
           else
         
            decode(faab.conversion_date,
                 
                   NULL,
                 
                   faab.life_in_months -
                 
                   floor(months_between(fdpp.calendar_period_close_date,
                                     
                                        faab.prorate_date)),
                 
                   faab.life_in_months -
                 
                   floor(months_between(fdpp.calendar_period_close_date,
                                     
                                        faab.deprn_start_date)))
       
         end
     
          FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
     
         where faab.ASSET_ID = fbb.ASSET_ID
           
           and faab.date_ineffective IS NULL
           
           AND fdpp.period_counter =
           
               (SELECT MAX(dpp.period_counter)
             
                  FROM fa_deprn_periods dpp
             
                 where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
             
                )
           
           and faab.ASSET_ID = fab.ASSET_ID
           
           and fb.ASSET_ID = fbb.ASSET_ID
           
           and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
           
           and fbb.ASSET_ID = b.ASSET_ID
           
           and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
        ) REM_LIFE_IN_MON
     
       --------------------------------------
     
       /*,    (  SELECT
     
         
     
       case when a.TRANSACTION_TYPE_CODE = 'FULL RETIREMENT' then 'FULL RETIREMENT'
     
       when decode(faab.conversion_date,
     
       NULL,
     
       faab.life_in_months -
     
       floor(months_between(fdpp.calendar_period_close_date,
     
       faab.prorate_date)),
     
       faab.life_in_months -
     
       floor(months_between(fdpp.calendar_period_close_date,
     
       faab.deprn_start_date))) <= 0 then decode((select  a.TRANSACTION_TYPE_CODE
     
       from fa_transaction_history_trx_v a
     
       where a.ASSET_ID = fab.ASSET_ID
     
       and a.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
     
       and a.CATEGORY_ID = fb.ASSET_CATEGORY_ID
     
       and a.ASSET_ID = fb.ASSET_ID
     
       and a.ASSET_ID = b.ASSET_ID
     
       and a.BOOK_TYPE_CODE = b.BOOK_TYPE_CODE
     
       and a.BOOK_TYPE_CODE = fdp.BOOK_TYPE_CODE
     
       and a.TRANSACTION_TYPE_CODE = 'FULL RETIREMENT'
     
       ) , 'FULL RETIREMENT', 'FULL RETIREMENT', 'FULLY DEPRECIATED')
     
               
     
       else null
     
       end
     
       FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
     
                 
     
       where faab.ASSET_ID = fbb.ASSET_ID
     
       and faab.date_ineffective IS NULL
     
       AND fdpp.period_counter =
     
       (SELECT MAX(dpp.period_counter)
     
       FROM fa_deprn_periods dpp
     
       where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
                         
     
       )
     
       and faab.ASSET_ID = fab.ASSET_ID
     
       and fb.ASSET_ID = fbb.ASSET_ID
     
       and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
     
       and fbb.ASSET_ID = b.ASSET_ID
     
       and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
               
     
       ) STATUS*/
     
       -------------------------------------
     
      ,
     
       (select a.TRANSACTION_TYPE_CODE
     
          from fa_transaction_history_trx_v a
     
         where a.ASSET_ID = fab.ASSET_ID
           
           and a.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
           
           and a.CATEGORY_ID = fb.ASSET_CATEGORY_ID
           
           and a.ASSET_ID = fb.ASSET_ID
           
           and a.ASSET_ID = b.ASSET_ID
           
           and a.BOOK_TYPE_CODE = b.BOOK_TYPE_CODE
           
           and a.BOOK_TYPE_CODE = fdp.BOOK_TYPE_CODE
           
           and a.TRANSACTION_TYPE_CODE = 'FULL RETIREMENT') FULL_RETIREMENT
     
       --------------------------
     
      ,
     
       TRUNC((SELECT
           
               case
             
                 when decode(faab.conversion_date,
                           
                             NULL,
                           
                             faab.life_in_months -
                           
                             floor(months_between(fdpp.calendar_period_close_date,
                                               
                                                  faab.prorate_date)),
                           
                             faab.life_in_months -
                           
                             floor(months_between(fdpp.calendar_period_close_date,
                                               
                                                  faab.deprn_start_date))) <= 0 then
               
                  0
             
                 else
               
                  decode(faab.conversion_date,
                       
                         NULL,
                       
                         faab.life_in_months -
                       
                         floor(months_between(fdpp.calendar_period_close_date,
                                           
                                              faab.prorate_date)),
                       
                         faab.life_in_months -
                       
                         floor(months_between(fdpp.calendar_period_close_date,
                                           
                                              faab.deprn_start_date)))
             
               end
           
                FROM fa_books faab,
                   
                     fa_deprn_periods fdpp,
                   
                     fa_additions_b fbb
           
               where faab.ASSET_ID = fbb.ASSET_ID
                 
                 and faab.date_ineffective IS NULL
                 
                 AND fdpp.period_counter =
                 
                     (SELECT MAX(dpp.period_counter)
                   
                        FROM fa_deprn_periods dpp
                   
                       where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                   
                      )
                 
                 and faab.ASSET_ID = fab.ASSET_ID
                 
                 and fb.ASSET_ID = fbb.ASSET_ID
                 
                 and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                 
                 and fbb.ASSET_ID = b.ASSET_ID
                 
                 and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
           
              --   and fbb.ASSET_ID = b.ASSET_ID
           
              --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
           
              ) / 12) YEARS
     
       ---------------------------------
     
      ,
     
       (SELECT
     
         case
       
           when decode(faab.conversion_date,
                     
                       NULL,
                     
                       faab.life_in_months -
                     
                       floor(months_between(fdpp.calendar_period_close_date,
                                         
                                            faab.prorate_date)),
                     
                       faab.life_in_months -
                     
                       floor(months_between(fdpp.calendar_period_close_date,
                                         
                                            faab.deprn_start_date))) <= 0 then
         
            0
       
           else
         
            decode(faab.conversion_date,
                 
                   NULL,
                 
                   faab.life_in_months -
                 
                   floor(months_between(fdpp.calendar_period_close_date,
                                     
                                        faab.prorate_date)),
                 
                   faab.life_in_months -
                 
                   floor(months_between(fdpp.calendar_period_close_date,
                                     
                                        faab.deprn_start_date)))
       
         end
     
          FROM fa_books faab, fa_deprn_periods fdpp, fa_additions_b fbb
     
         where faab.ASSET_ID = fbb.ASSET_ID
           
           and faab.date_ineffective IS NULL
           
           AND fdpp.period_counter =
           
               (SELECT MAX(dpp.period_counter)
             
                  FROM fa_deprn_periods dpp
             
                 where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
             
                )
           
           and faab.ASSET_ID = fab.ASSET_ID
           
           and fb.ASSET_ID = fbb.ASSET_ID
           
           and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
           
           and fbb.ASSET_ID = b.ASSET_ID
           
           and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
        --   and fbb.ASSET_ID = b.ASSET_ID
     
        --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
     
        ) - TRUNC((SELECT
                 
                    case
                 
                      when decode(faab.conversion_date,
                               
                                  NULL,
                               
                                  faab.life_in_months -
                               
                                  floor(months_between(fdpp.calendar_period_close_date,
                                                     
                                                       faab.prorate_date)),
                               
                                  faab.life_in_months -
                               
                                  floor(months_between(fdpp.calendar_period_close_date,
                                                     
                                                       faab.deprn_start_date))) <= 0 then
                   
                       0
                 
                      else
                   
                       decode(faab.conversion_date,
                           
                              NULL,
                           
                              faab.life_in_months -
                           
                              floor(months_between(fdpp.calendar_period_close_date,
                                                 
                                                   faab.prorate_date)),
                           
                              faab.life_in_months -
                           
                              floor(months_between(fdpp.calendar_period_close_date,
                                                 
                                                   faab.deprn_start_date)))
                 
                    end
                 
                     FROM fa_books faab,
                       
                          fa_deprn_periods fdpp,
                       
                          fa_additions_b fbb
                 
                    where faab.ASSET_ID = fbb.ASSET_ID
                       
                      and faab.date_ineffective IS NULL
                       
                      AND fdpp.period_counter =
                       
                          (SELECT MAX(dpp.period_counter)
                         
                             FROM fa_deprn_periods dpp
                         
                            where dpp.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                         
                           )
                       
                      and faab.ASSET_ID = fab.ASSET_ID
                       
                      and fb.ASSET_ID = fbb.ASSET_ID
                       
                      and faab.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
                       
                      and fbb.ASSET_ID = b.ASSET_ID
                       
                      and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                 
                   --   and fbb.ASSET_ID = b.ASSET_ID
                 
                   --and b.BOOK_TYPE_CODE = fdpp.BOOK_TYPE_CODE
                 
                   ) / 12) * 12 MONTHS

------------------------------

  FROM fa_books fab,
     
       fa_deprn_periods fdp,
     
       fa_additions_b fb,
     
       fa_deprn_summary b

 where fab.ASSET_ID = fb.ASSET_ID
   
   and b.ASSET_ID = fab.ASSET_ID
   
   and b.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
   
   and b.PERIOD_COUNTER = fdp.PERIOD_COUNTER
   
   and fab.date_ineffective IS NULL
   
   AND fdp.period_counter =
   
       (SELECT MAX(dp.period_counter)
     
          FROM fa_deprn_summary dp
     
         where dp.ASSET_ID = fab.ASSET_ID
           
           and dp.ASSET_ID = fb.ASSET_ID
           
           and dp.BOOK_TYPE_CODE = fab.BOOK_TYPE_CODE
           
           and fdp.BOOK_TYPE_CODE = dp.BOOK_TYPE_CODE)

 order by to_number(fb.ASSET_NUMBER), fab.BOOK_TYPE_CODE

--------------------------------------------------------------------------------------------------------------------------

For My Case When Asset is Retired (Retired Assets Remaining Life Between Date Retired and Date Placed in Service)

SELECT books.book_type_code,
       c.ASSET_NUMBER,
     
       books.life_in_months,
     
       GREATEST(NVL(books.life_in_months, 0) -
             
                MONTHS_BETWEEN(TRUNC(tt.DATE_RETIRED, 'MONTH'),
                             
                               TRUNC(books.DATE_PLACED_IN_SERVICE, 'MONTH')),
             
                0
             
                ) Total_remaining_life_in_months,
     
       TRUNC(GREATEST(NVL(books.life_in_months, 0) -
                   
                      MONTHS_BETWEEN(TRUNC(tt.DATE_RETIRED, 'MONTH'),
                                   
                                     TRUNC(books.DATE_PLACED_IN_SERVICE,
                                         
                                           'MONTH')),
                   
                      0
                   
                      ) / 12) remaining_life_in_years,
     
       --1756 --128980
     
       ---------------
     
       GREATEST(NVL(books.life_in_months, 0) -
             
                MONTHS_BETWEEN(TRUNC(tt.DATE_RETIRED, 'MONTH'),
                             
                               TRUNC(books.DATE_PLACED_IN_SERVICE, 'MONTH')),
             
                0
             
                ) -
     
       TRUNC(GREATEST(NVL(books.life_in_months, 0) -
                   
                      MONTHS_BETWEEN(TRUNC(tt.DATE_RETIRED, 'MONTH'),
                                   
                                     TRUNC(books.DATE_PLACED_IN_SERVICE,
                                         
                                           'MONTH')),
                   
                      0
                   
                      ) / 12) * 12 Remainig_Life_In_Months
     
       -----------------
     
      ,
     
       (select a.TRANSACTION_TYPE_CODE
     
          from fa_transaction_history_trx_v a
     
         where a.ASSET_ID = tt.ASSET_ID
           
           and a.BOOK_TYPE_CODE = tt.BOOK_TYPE_CODE
           
           and a.TRANSACTION_HEADER_ID = tt.TRANSACTION_HEADER_ID_IN) TYPE

-------------------

  FROM fa_books_V books, fa_retirements_v tt, fa_additions_b c

 where tt.ASSET_ID = books.ASSET_ID
   
   and c.ASSET_ID = books.asset_id
   
   and books.book_type_code = tt.BOOK_TYPE_CODE

--and books.asset_id=2555


 order by to_number(c.asset_number)

1 comment:

  1. Hello, Everyone,I'm Adrik Vadim living in Kurgan City , I want to share with you all on here on how Mr Benjamin help me with a loan of 15,000.000.00 Rubles to start up my food beverage delivery after all I have work in several hotels here in kurgan just to earn a living but unfortunate I was still having difficulties to pay a rent but I thank God now that I'm a self employ now with 5 workers working in my care. Just if you looking for financial freedom I will advise you contact Mr Benjamin with this email below and whats app number as well. 247officedept@gmail.com   +1-989-394-3740

    ReplyDelete