|
Archives of the TeradataForumMessage Posted: Thu, 30 Jun 2005 @ 10:14:18 GMT
<-- Anonymously Posted: Wednesday, June 29, 2005 10:23 --> Hello, You can use the following generic method : Suppose that the source table which contains the account info is - cust_acc. Lets create another table named - cust_acc_rank which has one additional column called 'rank_cust'. Then get the rank on the cust_no and acc_no using the SQL : INSERT INTO cust_acc_rank SELECT a.cust_no,a.acc_no,a.bal,rank(a.cust_no,a.acc_no ASC ) FROM cust_acc as a INNER JOIN cust_acc b ON a.cust_no = b.cust_no AND a.acc_no = b.acc_no Then we can get all the relevant info of a customer by querying the cust_acc_rank table : SELECT a.cust_no,a.acc_no as acc_one,a.bal,b.acc_no as acc_two,b.bal,c.acc_no as acc_three,c.bal,d.acc_no as acc_four,d.bal FROM cust_acc_rank a INNER JOIN cust_acc_rank b ON a.cust_no = b.cust_no AND a.rank_cust = b.rank_cust - 1 INNER JOIN cust_acc_rank c ON a.cust_no = c.cust_no AND a.rank_cust = c.rank_cust - 2 INNER JOIN cust_acc_rank d ON a.cust_no = d.cust_no AND a.rank_cust = d.rank_cust - 3 Hope this helps!
| ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||