0

データを含む約20のExcelファイルがあります。すべてのテーブルには、ID、名前、年齢、場所などの同じ列があります。各ファイルには個別のデータがありますが、あるファイルのデータが別のファイルで再び繰り返されるかどうかはわかりません。したがって、すべてのファイルを結合したいので、結果 st には個別の値が含まれている必要があります。できるだけ早くこの問題を解決してください。結果セットを Access データベースに保存したい。

4

5 に答える 5

1

アクセスでシートをリンクするか、シートを表としてインポートすることをお勧めします。

そこから、テーブル/シートからの DISTINCT 選択を使用して必要なキーを決定し、必要に応じてレコードのみを選択してください。

于 2009-11-09T21:28:27.897 に答える
0

SQL では、JOIN または NATURAL JOIN を使用してテーブルを結合できます。すべてのテーブルが同じ値を持っていると言ったので、私は NATURAL JOIN を調べます。

その後、DISTINCT を使用して個別の値を取得できます。

ただし、これがあなたが探しているものかどうかはわかりません。質問はExcelについて尋ねていますが、SQLでタグ付けしています。

于 2009-11-09T21:26:45.740 に答える
0

結合は、対応する列の値を一致させることによって 2 つのテーブルを結合することです。その結果、最初のテーブルと、2 番目のテーブルからコピーされた一致した行で構成されるマージされたテーブルが得られます。Excel用のDIGBDアドインを使用できます

于 2015-09-03T09:32:34.250 に答える
0

必要なデータの一意のセットは次のようです。

SELECT T1.name, T1.loc
  FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
       ].[Sheet1$] AS T1
UNION 
SELECT T1.name, T1.loc
  FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
       ].[Sheet1$] AS T1

id...しかし、 (Excel テーブルの id 値を使用するのではなく)一連の整数を任意に適用したい場合。

Access データベース エンジンは一般的なテーブル式をサポートしておらず、Excel はVIEWs をサポートしていないため、そのUNIONクエリを派生テーブルとして繰り返す必要があります (オプティマイザーが繰り返しを認識してくれることを願っています)。たとえば、相関サブクエリを使用して行番号を取得します。

SELECT (
        SELECT COUNT(*) + 1
          FROM (
                SELECT T1.name, T1.loc
                  FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
                       ].[Sheet1$] AS T1
                UNION 
                SELECT T1.name, T1.loc
                  FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
                       ].[Sheet1$] AS T1
               ) AS DT1
         WHERE DT1.name < DT2.name
       ) AS id, 
       DT2.name, DT2.loc
  FROM (
        SELECT T2.name, T2.loc
          FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
               ].[Sheet1$] AS T2
        UNION 
        SELECT T2.name, T2.loc
          FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
               ].[Sheet1$] AS T2
       ) AS DT2;

ノート:

結果セットをアクセスデータベースに保存したい

次に、Excel データを Access データベースのステージング テーブルに移行し、そこからデータ スクラビングを行う必要があります。少なくとも、その派生テーブルをVIEW:)に入れることができます

于 2009-11-10T09:15:05.667 に答える