Hi Guys, 
I have this strange problem.  Take the following SQL i wrote which 
erturns a list of dates lower than the one entered in a table :-
SELECT * FROM HACPRP.EQ_POOL_ACT_VIEW                      
WHERE ACTVTY_DT IN                                         
                                                           
      (SELECT ACTVTY_DT FROM HACPRP.EQ_POOL_ACT_VIEW   
       
       WHERE SUBSTR(ACTVTY_DT,5,2) < '02'               
      )                                                       
                                                           
UNION                                                   
                                                           
SELECT * FROM HACPRP.EQ_POOL_ACT_VIEW                      
WHERE ACTVTY_DT IN                                         
                                                           
      (SELECT ACTVTY_DT FROM HACPRP.EQ_POOL_ACT_VIEW       
                                                           
       WHERE SUBSTR(ACTVTY_DT,1,2) < '03'                
       AND                                         
             SUBSTR(ACTVTY_DT,5,2) = '02'                
      )                                                    
                                                           
UNION                                                   
                                                           
SELECT * FROM HACPRP.EQ_POOL_ACT_VIEW                      
WHERE ACTVTY_DT IN                                         
                                                           
      (SELECT ACTVTY_DT FROM HACPRP.EQ_POOL_ACT_VIEW       
                                                           
         WHERE SUBSTR(ACTVTY_DT,3,2) < '27'                
         AND                                         
               SUBSTR(ACTVTY_DT,1,2) = '03'                
         AND                                         
               SUBSTR(ACTVTY_DT,5,2) = '02'                
      ); 
I had to do this in this format as whoever created the table made the ACTVTY_DT a CHAR(06) instead of a DATE !
This works fine and gives me back my required results.  
The problem is however - How do I get SQL to delete these results now
from the HACPRP.EQ_POOL_ACT_VIEW   table ?   
                 
No matter what i try it just falls over and will not delete the records.  
Is it possible to do ? 
I really need help on this one, so any comments would be really appreciated.
Peter.just replace the select * with the word DELETE, most likely cannot do the UNION DELETE so it most likely will have to be three seperate statements without the union.
let me know if that does not work|||Try this:
DELETE FROM HACPRP.EQ_POOL_ACT_VIEW
WHERE ACTVTY_DT IN
(SELECT ACTVTY_DT FROM HACPRP.EQ_POOL_ACT_VIEW
  WHERE SUBSTR(ACTVTY_DT,5,2)  < '02'
     OR (SUBSTR(ACTVTY_DT,1,2) < '03'
    AND  SUBSTR(ACTVTY_DT,5,2) = '02')
     OR (SUBSTR(ACTVTY_DT,3,2) < '27'
    AND  SUBSTR(ACTVTY_DT,1,2) = '03'
    AND  SUBSTR(ACTVTY_DT,5,2) = '02'));
also:
DELETE FROM HACPRP.EQ_POOL_ACT_VIEW
WHERE TO_DATE(ACTVTY_DT,'MMDDYY') < '27-MAR-2003';
;)|||hi,
or just type delete from ( <your query)
hope this helps
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment