2

この質問にもっと適切なタイトルを思い付くことができる人がいれば、私はすべて耳にします。

3 つのデータベースからレポートの情報を収集する SQL スクリプトを継承し、フィルター処理されたデータを格納するために多数の #temporary テーブルを使用しています。Django を使用してレポートを生成するには、このスクリプトの出力を使用する必要があります。

必要なデータベースを検査し、必要なテーブルのモデルを作成することから始めました。私の当初の計画は、SQL スクリプト (~330 行と 20 クエリ) をリバース エンジニアリングすることでしたが、これは私が思っていたよりもはるかにトリッキーであることが証明されています。このスクリプトを実行して #temporary テーブルを別のデータベースなどの Django モデルに保存する方法はありますか?

Django 1.5 と MS SQL Server 2008 R2 (django-mssql バックエンド) を使用しています。お時間をいただきありがとうございます。

==編集==

このスクリプトがどのように構成されているかを少し詳しく説明します。

SET NOCOUNT ON
declare variables here
set them here

SELECT f.val1, b.val2
INTO #temp_table1
FROM myDB1.dbo.foo f,
     myDB1.dbo.bar b,
     myDB2.dbo.foobar fb
WHERE ...
etc

-- followed by lots more selections --
.
.
.
SET NOCOUNT OFF

SELECT
        [22 things get selected and manipulated here]
        [This is the data I really want]
FROM
        [mixture of #temp tables and myDB1]
WHERE [...]
GROUP BY [...]
ORDER BY [...]

SET NOCOUNT ON
DROP TABLE #temp_table1
.
.
.

SET NOCOUNT OFF

これが役立つことを願っています

4

1 に答える 1

0

一時テーブルごとに Django モデルを作成します。各モデルでimport(self)、テーブルを切り捨ててすべての行を選択するメソッドを定義します。

他のコードは、各一時テーブルのデータをいつインポートするかを決定します。毎回インポートする必要はないので、最後にインポートしてから変更されたデータのみをロードするようにインポートを最適化できます。

次に、Django クエリを使用して SELECT を実行できます。

于 2013-06-17T18:33:02.247 に答える