On Tue, Apr 17, 2012 at 12:11 PM, timlash <timl...@gmail.com> wrote:
> Searched the web and this forum without satisfaction.  Using Python 2.7 and 
> pyODBC on Windows XP I can get the code below to run and generate two cursors 
> from two different databases without problems.  Ideally, I'd then like to 
> join these result cursors thusly:
>
> SELECT a.state, sum(b.Sales) FROM cust_curs a INNER JOIN fin_curs b ON 
> a.Cust_id = b.Cust_id GROUP BY a.state
>
> Is there a way to join cursors using SQL statements in python or pyODBC?

Not using SQL.  Oracle has the ability to do cross-database queries,
but only to other Oracle databases.  If you want to join that data,
you'll need to do it in Python.


>  Would I need to store these cursors in a common DB (SQLite3?) to accomplish 
> this?

That's an option, although it seems like overkill to me.

>  Is there a pure python data handling approach that would generate this 
> summary from these two cursors?

Create a dict keyed on the cust_id.  Something like this should do
what you want:

dict1 = {row[0]: row for row in cursor1}
dict2 = {row[0]: row for row in cursor2}
join = {}
for key in dict1.viewkeys() & dict2.viewkeys():
    join[key] = (dict1[key], dict2[key])

Cheers,
Ian
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to