0

私はSQLで作業する小さなタスクを割り当てられたばかりで、非常に時代遅れです。かなり基本的なことを知っています。タスクは非常に面倒で、1つずつ実行するよりも簡単な方法があると確信しています。 。

問題は次のとおりです。

会社には異なるサーバーに2つのデータベースがあり(1つはOracle)、私はToadforOracleを使用して両方のデータベースにクエリを実行しています。

Oracleに転送されたはずの6kのレシート番号のリストを含むExcelファイルがありますが、何らかの理由ですべてが転送されたわけではないため、両方のデータベースにある各番号を確認してから、他のいくつかのフィールドを確認する必要があります請求額のように。その最後の部分は今のところ無視できます。

私はSQLでクエリを作成したり、Excelで数式を作成したりして、最初のDBの結果と2番目のDBの結果のデータを、3列に貼り付けて自動的にクロスチェックすることができます。ああ、ほとんど忘れてしまいましたが、すべてのデータソースでいくつかの数字が繰り返されています:S

どんな助けでも大歓迎です、私が十分に明確に自分自身を説明したことを願っています。

4

1 に答える 1

1

それを行うにはいくつかの方法があります。あなたのスキルセットを考慮して、私は次のようにします:

  1. データをExcelのN列に貼り付けます。
  2. N列のデータを使用して、最初の行にSQLステートメントを作成します。次のよう=concat("select ", A1 , " from dual where not exists (select 1 from receipts_table where receipt_id = '", A1, "');"になります。チェックする他のフィールドのwhere句を追加します。
  3. SQLをコピーしてToadに貼り付け、実行されることを確認します。レシートが欠落している場合、またはOracleで正しい値がない場合は、レシートIDを出力する必要があります。
  4. Excelで[塗りつぶし]->[下へ]を使用して、領収書ごとに1つのSQLを作成します。
  5. 6k SQLステートメントをToadにコピーし、スクリプトとして実行します。
  6. 出力を生成した行を見つけます。それらは不足している領収書です。
于 2013-03-14T16:06:01.173 に答える