Bad argument for ** operator - POWER function

Database

Bad argument for ** operator - POWER function

Greetings Experts,

We are facing a strange situation in which the following sql skeleton is failing with the error "Bad argument for ** operator"  Please note that the datatype for columns used in POWER is DECIMAL(5,2)

SELECT  TABLE1.COL1, POWER((TABLE1.COL1+2),(TABLE1.COL2+3)),
TABLE2.COL4,....FROM TABLE1 LEFT OUTER JOIN TABLE2 ON (TABLE1.COL1
=TABLE2.COL1) WHERE TABLE1.DATE1='2015-08-31';

When I run the above query it produces the above stated error.  However, when I isolate the query to one single table, it runs quite good. (please note that even the WHERE clause in above query is not used here)

SELECT POWER((TABLE1.COL1+2),(TABLE1.COL2+3)) FROM TABLE1;

I am confused on the above as it (the same query with single table) is running good on a single table, but when used in join with other tables, producing the error.  Please note that TABLE1 is the driving table and the columns used in POWER function are also from TABLE1, there by confirming that there aren't any NULL values from them.

From Teradatainfo., could see that the error is reproduced when it evaluates to 0 ** 0 OR  o ** negative value.  However, confirming that either of the columns will never be zero as per CASE.  Still getting the same error.

SELECT  TABLE1.COL1, (CASE WHEN TABLE1.COL1>0 AND TABLE1.COL2>0 THEN POWER((TABLE1.COL1+2),(TABLE1.COL2+3)) ELSE 0 END) AS POW_OP,
TABLE2.COL4,....FROM TABLE1 LEFT OUTER JOIN TABLE2 ON (TABLE1.COL1
=TABLE2.COL1) WHERE TABLE1.DATE1='2015-08-31';

When I move the position of the columns i.e., from around 3rd or 4th to 1st or comment rest of all the columns except this one, it runs good.

SELECT   (CASE WHEN TABLE1.COL1>0 AND TABLE1.COL2>0 THEN POWER((TABLE1.COL1+2),(TABLE1.COL2+3)) ELSE 0 END) AS POW_OP   /*   list of columns  */ 
FROM TABLE1 LEFT OUTER JOIN TABLE2 ON (TABLE1.COL1
=TABLE2.COL1) WHERE TABLE1.DATE1='2015-08-31';

This is really perplexing.  Can somebody tell me where I am going wrong.