0

すべてに存在する列を照会する必要がある 50 個のテーブルがあります。この列はチェックボックスです。テーブルごとに、チェックされている数とチェックされていない数をカウントする必要があります。結果を乗算または結合するのではなく、結果をカウントしてテーブルごとに表示するための1つのクエリを取得できないようです。チェックされているものとチェックされていないものの数を表示するには、テーブルごとに 1 列が必要です。ありがとう

SELECT "Table1" , Count('qcpass') AS column 
    FROM 5000028 
    GROUP BY [5000028].qcpass
union 
SELECT "Table2",count('qcpass')
    FROM 5000029 
    Group By [5000029].qcpass;
4

2 に答える 2

1

編集

フィードバックに基づいて、これを試してください (テーブルごとに 1 列が必要だったことに気付きませんでした):

  1. 50 個のテーブルすべてを結合するユニオン クエリを作成します。結果は、テーブルごとに 1 行になるはずです。

    SELECT "5000028" as QCPASS, Count () FROM 5000028 group by QCPASS
    UNION
    QCPASS として SELECT "5000029", Count () FROM 5000029 group by QCPASS
    UNION...

  2. 次に、Access で非常に簡単な「クロス集計」クエリを作成します。まず、新しいクエリを作成し、上部にある [クロス集計] オプションを選択します。このクエリは、ユニオン クエリをソースとして使用します。

  3. これには 3 つの列があります。1 つ目は定数値です (必要に応じて "Totals" を使用できます。これは単なるプレースホルダーです)。これを「行見出し」として設定します。

  4. 2列目はQCPassです。これを「列見出し」として設定します。

  5. 3 列目は Expr1 になります。これを「値」として設定します。

これを実行すると、ソース テーブルごとに 1 列の 1 行のテーブルが表示されます。

于 2013-07-03T16:18:15.237 に答える
0
SELECT columna, 'tablename1' from tablename1 where ..
UNION
SELECT columna, 'tablename2' from tablename2 where ..
UNION
SELECT columna, 'tablename3' from tablename3 where ..
...
SELECT columna, 'tablename4' from tablename50 where .. 
于 2013-07-03T16:37:41.503 に答える