3

請求書の支払いを保存するためのMySQLデータベースを構築しました。私のオフィスの全員がMSAccessを持っているので、MS Accessを使用して、バックエンドのMySQLテーブルにリンクするフロントエンドデータベースレポートツールを構築しています。

MySQLテーブルを参照するAccessクエリをいくつか作成し、操作を行った後、3つのクエリ(同じテーブル構造)をマージして、レポートを作成できるクエリに戻したいと考えています。

私の調査(article1article2など)を通じて、Unionクエリが必要であることがわかりました。2つのテーブルをうまく結合できますが、3番目のテーブルを結合しようとすると、クエリが実行されません。私は各組み合わせ(1-2、1-3、2-3)でUnionクエリを個別にテストし、任意のペアが機能します。3番目のクエリを単一のユニオンに組み込むために何が間違っているのかを理解しようとしています。何か提案はありますか?

表1=A表2=B表3=C

SELECT A.Year, A.BillingQuarter, A.Name, A.ObjectCode, A.Amount
FROM A

UNION  ALL SELECT B.Year, B.BillingQuarter, B.Name, B.ObjectCode, B.Amount
FROM B

UNION ALL SELECT C.Year, C.BillingQuarter, C.Name, C.ObjectCode, C.Amount
FROM C

;

*更新* 各クエリをスタンドアロンテーブルにエクスポートした後、3テーブルのUNION ALLクエリを実行し、それらをマージすることができました。したがって、問題は明らかに、3つのテーブルではなく、UNION3クエリに対する私の試みにあります。考え?

ありがとう!

4

2 に答える 2

2

これをAccessでテストすることはできませんが、SQL Serverで機能します。派生テーブルとしてUNIONを持つ最初の2つのテーブルを選択し、次にUNIONテーブルCと派生テーブルを選択します。

SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
    (SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
    AS Derived
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C

これを回避できるかどうかを確認するために、スキーマの設計/関係を調べる価値があるかもしれません。

于 2011-01-07T21:31:43.330 に答える
0

クエリを終了するには、セミコロン(;)が必要です。下記参照:

SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
    (SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
    AS Derived
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C;
于 2018-01-27T02:07:11.117 に答える