2012-04-17 9 views
2

満足度の高いWebおよびこのフォーラムを検索しました。 Windows XPでPython 2.7とpyODBCを使用する。以下のコードを実行して問題のない2つの異なるデータベースから2つのカーソルを生成することができます。理想的には、私は、thuslyこれらの結果カーソルに参加したいと思います:Pythonでカーソルを操作する

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 

PythonやpyODBCでSQL文を使用して、カーソルに参加する方法はありますか?これを達成するために、これらのカーソルを共通のDB(SQLite3?)に格納する必要がありますか?これらの2つのカーソルからこの要約を生成する純粋なPythonデータ処理アプローチはありますか?

ありがとうございました。

の作業コード:

import pyodbc 

# 
# DB2 Financial Data Cursor 
# 
cnxn = pyodbc.connect('DSN=DB2_Fin;UID=;PWD=') 
fin_curs = cnxn.cursor() 

fin_curs.execute("""SELECT Cust_id, sum(Sales) as Sales 
        FROM Finance.Sales_Tbl 
        GROUP BY Cust_id""") 

# 
# Oracle Customer Data Cursor 
# 
cnxn = pyodbc.connect('DSN=Ora_Cust;UID=;PWD=') 
cust_curs = cnxn.cursor() 

cust_curs.execute("""SELECT Distinct Cust_id, gender, address, state 
        FROM Customers.Cust_Data""") 

答えて

1

カーソルが単純にSQLコマンドを実行し、結果を取得するために使用するオブジェクトです。データは新しいデータベースに移行されないため、結合は不可能です。データを結合する場合は、2つのテーブルを同じデータベースに配置する必要があります。これは、両方のテーブルとそのデータをSQLiteデータベースに取り込むことを意味するのか、別の方法で行うのかは、ユースケースの詳細によって異なりますが、理論的にはうまくいきます。