0

現在、さまざまな種類のドキュメントを調べたレポートがあります。各ドキュメントには、完了する必要のあるタイムスケールが割り当てられています(つまり、2日、4日など)。100種類以上のドキュメントがあります。現在、各ドキュメントに割り当てられたこのタイムスケールは、Excelスプレッドシートに保持され、vlookup式(評価IDに基づく)を使用してExcelのデータと照合されます。残念ながら、この割り当てられたタイムスケールを配置する場所はデータベースにありませんが、Excelでこの余分な操作を行うことなく、データベースからレポートを実行してユーザーに送信できるようにしたいと思います。大規模なcaseステートメントを書くことでこれを達成できることを私は知っています(以下は単なる例です)

すなわち

SELECT
ID,
CASE WHEN ID = 1 then '1 day' 
WHEN ID = 2 then '42 days'
WHEN ID = 3 then '16 days'
ELSE 'CHECK' end as 'Timescale'
FROM TABLE1

しかし、SQLでこれを行うより効率的な方法があるかどうか疑問に思いました(これを記録するためにデータベースに追加のフィールドを要求する以外に!)?ないかもしれませんが、聞いてみる価値はあると思いました!ありがとう。

4

2 に答える 2

5

100の異なるタイムスケールがある場合は、データベースにTIMESCALEテーブルを追加し、ビジネスにとって重要な情報をスプレッドシートに保存しないようにするのが妥当です。すばらしい製品であるExcelに反対するものは何もありません。私の親友の中には、Excelスプレッドシートがありますが、ビジネスに不可欠な情報は保存していません。

共有してお楽しみください。

于 2012-06-22T11:16:47.147 に答える
0

したがって、OracleテーブルとExcelシートを結合する必要があります...

これは完全に不可能ではないと思います。2つの方法があります。

方法1.Oracleで参加できます。つまり、Excelシートを読み取ることができるJavaストアドプロシージャを作成する必要があります。次のステップは、このJavaストアド・プロシージャをラップするためのPL/SQLラッパーを作成することです。その後、PL / SQLラッパーを介してJavaストアドプロシージャを呼び出すSQLステートメントを記述できます。このSQLステートメントは、Oracleテーブルと結合できます。

はい、確かに、これは非常に複雑です。

方法2.ODBCを介してExcelシートからOracleに接続できると思います。Excel内でOracleからデータをフェッチできるはずです。したがって、Excelがあなたに代わって参加することができます。

はい、確かに、これは非常に複雑です。

この追加データを新しいタイムスケールテーブル(Bob Jarvisが提案したように)に配置することもできますが、ExcelシートとOracleテーブルの間で同期する必要があります。

すべてのデータをOracleに移動することもできます。または、すべてのデータを移動して優れたものにすることができますか(おそらくそうではありません)?

于 2012-06-22T12:55:58.153 に答える