Greetings. I'm trying to do something to a table, contained within an
Oracle dB, which looks exactly like Daniel's table below:
parent child
1 2
2 3
3 4
What I need to do: I need to find parent1 (a user record) and return
only child4. If parent 1 doesn't exist in the table, I'll spit that
one back out (example: Parent 45 isn't in the above table, so I want
to spit it back out to the user.
Problem: I have to do this in Access 97. I've tried creating a loop,
and assigning variables, but to no avail.
Looks like this: 2 tables
User_Table Oracle_Table
---------- ------------
Parent_Num Old_Parent_Num | New_Parent_Num
Do until rs.EOF
If User_Table.Parent_Num = Oracle_Table.Old_Parent_Num
return Oracle_Table.New_Parent_Num
If New_Parent_Num (stored in a 3rd table??) =
Oracle_Table.Old_Parent_Num
return Oracle_Table.New_Parent_Num
Else
return User_Table.Parent_Num
rs.movenext
Loop
Does this make any sense? Is there a query I can write which will
eliminate the need to loop through the table? (I can't get the loop to
work...it only spits out the first child)
I think I can run an "sql-passthrough" query in Access, if I can
utilize the oracle functionality below.
Super-Lost! Any help would be Great!
Thanks,
Treo
Daniel <dlUNSPAMrubin_at_yahoo.com> wrote in message news:<3D34B3BF.73B38FF9_at_yahoo.com>...
> Thanks for your suggestion! One question in response below--you say you can put reasonable
> number (20 for example) of descendants into one line using sum/decode/group by tricks,
> e.g., making lines into columns. I'm not familiar with this. Do you have an example of this
> or pointer to where I can see how to do this?
>
> Thanks,
> Daniel
>
> (To reply to me directly, please remove the UNSPAM part from my email)
>
> Alex Filonov wrote:
>
> > Daniel <dlUNSPAMrubin_at_yahoo.com> wrote in message news:<3D33755B.105CC0CD_at_yahoo.com>...
> > > I'm trying to write a query on oracle 8.1.7 that will give me
> > > grandparent-child assocations. For example, if this is my table:
> > >
> > > parent child
> > > 1 2
> > > 2 3
> > > 3 4
> > >
> > > I want a query that shows all descendant of "parent". Such a query
> > > should produce:
> > >
> > > parent child
> > > 1 2
> > > 2 3
> > > 3 4
> > > 1 3
> > > 1 4
> > > 2 4
> > >
> > > I've tried using oracle hierarchical queries (START and CONNECT BY), but
> > > they don't give grandparent-child tuples. For example, here's what I get
> > > with this query:
> > >
> > > SELECT * FROM mytable
> > > START WITH parent_id = 1
> > > CONNECT BY PRIOR child = parent;
> > >
> > > PARENT CHILD
> > > ---------- ----------
> > > 1 2
> > > 2 3
> > > 3 4
> >
> > To get grandparent-chils tuples:
> >
> > select p.parent grandparent, c.child grandchild
> > from
> > ( SELECT * FROM mytable
> > START WITH parent_id = 1
> > CONNECT BY PRIOR child = parent) p,
> > (SELECT * FROM mytable
> > START WITH parent_id = 1
> > CONNECT BY PRIOR child = parent) c
> > where p.child = c.parent
> >
> > > But this doesn't give all descendants. What query do I need to write
> > > to get all
> > > descendants?
> >
> > It DOES give you all descendats. Maybe you want them all in one line, but it's
> > a different question. You can put reasonable number (20 for example) of
> > descendants into one line using sum/decode/group by tricks. Ever tried to turn
> > report, making lines into columns?
> >
> > > thanks
> > >
> > > (To reply to me directly, please remove the unspam string from my email)
Received on Wed Jul 17 2002 - 20:44:43 CDT