2013-10-07 4 views
1

Я пытаюсь сделать это в Access.объединить данные в 2 таблицах с запросом

У меня есть 2 таблицы: именованные 2012 Обе таблицы имеет одинаковые поля: год, продажи, счета-фактуры, Part Number, Описание

мне нужно окончательный отчет (запрос), который добавляет продажи и счета-фактуру для всех номера деталей. Например; Номер детали 123 имеет 1 продажу в 2012 году и 3 продажи в 2013 году будет 4 продажи. Мне нужна сумма полей продаж и счетов-фактур.

Таблицы имеют различное количество записей. Необходимо отобразить все записи.

Таблица 1 Пример

Year Sales Invoices Part Number Description 
2012  0  0  1234 HAT 
2012  3  3  5678 JACKET 

Таблица 2 Пример

Year Sales Invoices Part Number Description 
2013  17  17  1234 HAT 
2013  1  1  5678 JACKET 

QUERY Пример

Sales Invoices Part Number Description 
17   17  1234 HAT 
4   4  5678 JACKET 

ответ

2

Вам нужно сделать 2 вещи:

  1. Используйте запрос UNION для объединения данных из 2 таблиц.
  2. Создайте запрос агрегата (GROUP BY) для вычисления сумм из результатов, возвращаемых запросом UNION.

Первый вопрос: UNION запрос.

SELECT 
    t1.Sales, 
    t1.Invoices, 
    t1.[Part Number], 
    t1.Description 
FROM [TABLE 1] AS t1 
UNION ALL 
SELECT 
    t2.Sales, 
    t2.Invoices, 
    t2.[Part Number], 
    t2.Description 
FROM [TABLE 2] AS t2 

Tweak, что (непроверенный SQL) по мере необходимости. Затем используйте его как источник данных подзапроса для запроса GROUP BY.

SELECT 
    sub.[Part Number], 
    sub.Description, 
    Sum(sub.Sales) AS SumOfSales, 
    Sum(sub.Invoices) AS SumOfInvoices 
FROM 
    (
     SELECT 
      t1.Sales, 
      t1.Invoices, 
      t1.[Part Number], 
      t1.Description 
     FROM [TABLE 1] AS t1 
     UNION ALL 
     SELECT 
      t2.Sales, 
      t2.Invoices, 
      t2.[Part Number], 
      t2.Description 
     FROM [TABLE 2] AS t2 
    ) AS sub 
GROUP BY 
    sub.[Part Number], 
    sub.Description 
Смежные вопросы