Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> SQL way to do this ?

SQL way to do this ?

From: <Aleanna10_at_gmail.com>
Date: 2 May 2006 12:27:44 -0700
Message-ID: <1146598064.902752.199450@i39g2000cwa.googlegroups.com>


Not sure best way to explain this but I'll try. I have a table with some of list ids,
I need to merge them together under one list id. We separate our list_id in blocks of 20000

So lets say the dest list_id = 2000 and source list_id = 3000

I need to update all source list_id from 3000 to 2000 but only 20000 at a time.

if source list id 3000 has 56,000, the first 20,000 will have b_id of 1 and next
20,000 will have b_id of 2, and the next 16,000 will have b_id of 3.  I also have to take in account that the desti list_id doesnt overflow with more then 20k per b_id.

so given the following data

count(*)	b_id	dest list_id
20,000		1	2000
20,000		2	2000
7,000		3	2000


count(*)	b_id	source list_id
20,000		1	3000
20,000		2	3000
16,000		3	3000


after the update the final data should be

count(*)	b_id	dest list_id
20,000		1	2000
20,000		2	2000
20,000		3	2000
20,000		4	2000
20,000		5	2000
3,000		6	2000


Is there any better way to do this in oracle. I can do it programmatically fine but it seems very
hackish too me. Any help is greatly appreaciated.

note (there could be 1 or more source lists)

Thanks. Received on Tue May 02 2006 - 14:27:44 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US