1

私がやろうとしているのは、3 つの異なるテーブルから一意のデータ セットを取得し、それらを UNION クエリを使用してまとめて表示することです。すべてに共通するフィールドが 1 つあるため、そのフィールドを介してリンクする必要があります。クエリを実行しようとすると、「クエリを実行できません。複数値フィールドを使用した操作または構文が無効です」というエラーが表示されます。どのフィールドが問題を引き起こしているかはわかっています。それは「基幹業務」フィールドです。クエリがそれを処理できるようにするには、どうすればこれを修正できますか? それは可能ですか?

私が使用しているSQLステートメントは次のとおりです。

SELECT [Financial Bureau Reports].[Date Year], [Financial Bureau Reports].[Section Chief].[Financial Bureau Reports].[Outcome], [Financial Bureau Reports].[Type of Review]
FROM [Financial Bureau Reports]
WHERE (([Financial Bureau Reports].[CoCode (NAIC)]=[Forms]![Home Screen]![txtCoCode]))

UNION ALL

SELECT [Market Analysis Review].[Data Year], [Market Analysis Review].[Review Level], [Market Analysis Review].[Line of Business].[value], [Market Analysis Review].[Recommendation], [Market Analysis Review].[Analyst], [Market Analysis Review].[Action]
FROM [Market Analysis Review]
WHERE(([Market Analysis Review].[CoCode (NAIC)]=[Financial Bureau Reports].[CoCode(NAIC)]))

UNION ALL 

SELECT [MarketConductExams].[State], [MarketConductExams].[Report Date]
FROM [MarketConductExams]
WHERE [MarketConductExams].[CoCode (NAIC)]=[Market Analysis Review].[CoCode (NAIC)];

書式設定の欠如について申し訳ありませんが、明らかに SQL はうまく転送されません。

また、Microsoft Access 2010 で SQL を使用しています。

質問があいまいすぎる場合や説明が必要な場合はお知らせください。ありがとう!

4

4 に答える 4

3

選択に同じ数の列がないクエリを結合することはできません。これらは、結合する必要がある関連するクエリではないようです。アプリケーションに 3 つの個別のクエリを送信する必要があると思います。

于 2012-11-30T17:53:38.317 に答える
1

通常、ユニオンの周りに外側の SELECT がありますが、他のものは正しいです。同じ数のフィールドと同じ名前のフィールドが必要です。

AS を使用してフィールド名を同期します。他のクエリにないいくつかのフィールドがある場合は、それらを作成できます: SomeOutputField として null または SomeOutputField として ''。

于 2012-11-30T17:59:26.120 に答える
0

特にそのメッセージが表示される理由はわかりませんが、UNION ステートメントでは、各 SELECT ステートメントに同じ数の列があり、同じデータ型である必要があります。あなたが投稿したSQLステートメントには当てはまりません。

于 2012-11-30T17:54:43.023 に答える
0

テーブルを一緒にUNIONするのではなく、テーブルを互いにJOINする必要があると思います-次のように:

SELECT [Financial Bureau Reports].[Date Year], 
       [Financial Bureau Reports].[Section Chief].[Financial Bureau Reports].[Outcome], 
       [Financial Bureau Reports].[Type of Review],
       [Market Analysis Review].[Data Year], 
       [Market Analysis Review].[Review Level], 
       [Market Analysis Review].[Line of Business].[value], 
       [Market Analysis Review].[Recommendation], 
       [Market Analysis Review].[Analyst], 
       [Market Analysis Review].[Action],
       [MarketConductExams].[State], 
       [MarketConductExams].[Report Date]
FROM [Financial Bureau Reports]
(JOIN [Market Analysis Review]
   ON [Market Analysis Review].[CoCode (NAIC)]=[Financial Bureau Reports].[CoCode(NAIC)]
 (JOIN [MarketConductExams]
    ON [MarketConductExams].[CoCode (NAIC)]=[Market Analysis Review].[CoCode (NAIC)]))
WHERE [Financial Bureau Reports].[CoCode (NAIC)]=[Forms]![Home Screen]![txtCoCode];
于 2012-11-30T18:01:35.960 に答える