Объединение 3 таблиц / запросов с использованием запроса союза MS Access

StackOverflow https://stackoverflow.com/questions/4629659

  •  08-10-2019
  •  | 
  •  

Вопрос

Я создал базу данных MySQL для хранения платежей счета. У каждого в моем офисе MS Access, поэтому я создаю инструмент отчетов о базе данных в интерфейсе, используя MS Access и ссылки на таблицы MySQL на Backend.

Я создал некоторые запросы доступа, которые ссылаются на таблицы MySQL, сделали некоторые манипуляции, и теперь хотят объединить три запроса (с той же структурой таблицы) обратно в то, что я могу построить свой отчет.

Через мои исследования (Статья 1, Статья2., И другие) я обнаружил, что профсоюзный запрос - это то, что мне нужно. Я могу пронизить 2 столы просто нормально, но когда я пытаюсь объединить 3-й, запрос не выполняется. Я проверил запрос союза на каждой комбинации по отдельности, (1-2, 1-3, 2-3) и любая пара. Я пытаюсь понять, что я мог бы сделать неправильно, чтобы включить 3-й запрос в единый союз. Можете ли вы предложить какие-либо предложения?

Таблица 1 = Таблица 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 все запросы и объединить их вместе. Так что проблема явно лежит в моей попытке профсоюзных 3 запросов, а не в 3 столах. Мысли?

Спасибо!

Это было полезно?

Решение

Я не могу проверить это в доступе, но он работает на SQL Server, выберите первые две таблицы союзом в качестве производной таблицы, а затем Union Table 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

Может быть, стоит посмотреть на дизайн / отношения схемы, чтобы увидеть, можно ли избежать этого.

Другие советы

Вам нужен съемка (;), чтобы закончить запрос. Смотри ниже:

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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top