can we use max function in case statement?
Teradata Teradata Discussion Forums Teradata.com Discussion Forum
Visit Teradata.com
Home       Guidelines    Member List
Welcome Guest ( Login | Register )
        


This online forum is for user-to-user discussions of Teradata products, and is not an official customer support channel for Teradata. If you require direct assistance, please contact Teradata support.


can we use max function in case statement? Expand / Collapse
Author
Message
Posted 6/9/2008 11:06:11 PM
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Group: Forum Members
Last Login: 6/11/2008 8:15:47 AM
Posts: 6, Visits: 27
For example:

insert into table1
(amt)
select
case when t2.amt = max(t2.amt) then 0 else t2.amt end

from
Table2 t2

i'm getting an error 3504: Selected non-aggregate values should be part of the associated group.

Any suggessions please...

-Sujatha-
Post #11782
Posted 6/11/2008 11:50:41 AM
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Group: Forum Members
Last Login: 6/11/2008 5:44:44 PM
Posts: 2, Visits: 9
the query u r tryng to run is syntacticaly wrong....try using this
SELECT
CASE
WHEN amt = COL_C THEN 0
ELSE amt
END
FROM t2,(
SELECT MAX(amt)
FROM t2) TAB_1 (COL_C).



Post #11804
Posted 6/12/2008 10:14:41 AM
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

Group: Forum Members
Last Login: 6/27/2008 7:19:28 AM
Posts: 42, Visits: 54
You can use analytics group functions :

INSERT INTO table1
( amt )
SELECT CASE
WHEN t2.amt = MAX(t2.amt)
THEN 0
ELSE t2.amt
END
FROM table2 AS t2
;
Post #11822
Posted 6/12/2008 10:17:12 AM
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

Group: Forum Members
Last Login: 6/27/2008 7:19:28 AM
Posts: 42, Visits: 54
You can use analytics group functions :

INSERT INTO table1
( amt )
SELECT CASE
WHEN t2.amt = MAX(t2.amt) OVER()
THEN 0
ELSE t2.amt
END
FROM table2 AS t2
;
Post #11823
« Prev Topic | Next Topic »


Reading This Topic Expand / Collapse
Active Users: 0 ( 0 guests, 0 members, 0 anonymous members )
No members currently viewing this topic.


All times are GMT -5:00, Time now is 6:23pm

Powered By InstantForum.NET v4.1.4 © 2008
Execution: 0.063. 10 queries. Compression Disabled.