0

さて、進行中のプロジェクト (MS ACCESS 内) では、自動車会社の顧客が購入した追加の「オプション」の数を計算しています。そのために、次のクエリを作成して、すべてのオプションを 1 つの列に入れ、次の列の各オプションの合計を合計します (読みやすさと匿名性のために編集されています)。

SELECT a.options, Count(*)
FROM(
SELECT TBL.Des1 AS options FROM TBL UNION ALL
SELECT TBL.Des2 AS options FROM TBL UNION ALL
SELECT TBL.Des3 AS options FROM TBL UNION ALL
SELECT TBL.Des4 AS options FROM TBL UNION ALL
SELECT TBL.Des5 AS options FROM TBL UNION ALL
SELECT TBL.Des6 AS options FROM TBL UNION ALL
SELECT TBL.Des7 AS options FROM TBL UNION ALL
SELECT TBL.Des8 AS options FROM TBL UNION ALL
SELECT TBL.Des9 AS options FROM TBL UNION ALL
SELECT TBL.Des10 AS options FROM TBL UNION ALL
SELECT TBL.Des11 AS options FROM TBL UNION ALL
SELECT TBL.Des12 AS options FROM TBL UNION ALL
SELECT TBL.Des13 AS options FROM TBL) AS a

INTO TBL_OPTION_ALL
GROUP BY a.options;

私の問題は、実行しようとすると「FROM 句の構文エラー」というエラーが表示されることです。エラー プロンプトが終了すると、一番下の INTO ステートメントが強調表示されます。本来は各SELECTを括弧で区切っていたのですが、「JOIN句の構文エラー」というエラーが出て、似たような投稿を見つけて括弧を外すことで解決しました。私ももともと(...)aエイリアスを作成するだけでしたが、エイリアスを(...) AS a作成する方法がAccessで機能するかどうかわからないため、これに変更しました。

私の問題がどこにあるかについていくつかの理論があります(最も可能性の高いものから順に並べられています)

  1. [] を使用すべきときに () を使用している、または
    • 一部の UNION 呼び出しを囲む括弧がありません。または
    • 以前に試したように、括弧をまったく別の方法で整理し、UNION を分解する必要があります。
  2. これだけ多くの UNION を処理することはできません。この場合、どのように構成すればよいでしょうか。複数のクエリを作成する必要がありますか?
4

3 に答える 3

1

構文を逆にします。これは

Select <your columns> 
Into <destination table> 
From <source table>

したがって、次のものが必要です。

SELECT a.options, Count(*)
INTO TBL_OPTION_ALL
FROM(
SELECT TBL.Des1 AS options FROM TBL UNION ALL
SELECT TBL.Des2 AS options FROM TBL UNION ALL
SELECT TBL.Des3 AS options FROM TBL UNION ALL
SELECT TBL.Des4 AS options FROM TBL UNION ALL
SELECT TBL.Des5 AS options FROM TBL UNION ALL
SELECT TBL.Des6 AS options FROM TBL UNION ALL
SELECT TBL.Des7 AS options FROM TBL UNION ALL
SELECT TBL.Des8 AS options FROM TBL UNION ALL
SELECT TBL.Des9 AS options FROM TBL UNION ALL
SELECT TBL.Des10 AS options FROM TBL UNION ALL
SELECT TBL.Des11 AS options FROM TBL UNION ALL
SELECT TBL.Des12 AS options FROM TBL UNION ALL
SELECT TBL.Des13 AS options FROM TBL) AS a
GROUP BY a.options;
于 2013-06-24T20:50:45.723 に答える