объединяя данные из двух таблиц для подсчета контактов, пытаясь использовать объединение - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть две таблицы.Один отслеживает отгрузки Части, а другой отслеживает отгрузки Системы.Я пытаюсь посчитать контакты клиентов в каждой таблице, и в результате я получу общее количество контактов клиентов для обеих частей и систем вместе взятых.Я пытаюсь использовать Union, и я думаю, по моим результатам я все делаю неправильно.Мои результаты заканчиваются двумя записями для клиентов.Cust A будет иметь в общей сложности 9, а затем еще одну запись 1. Поэтому я полагаю, что слияния контактов с клиентами не происходит, а просто создается объединение обоих результатов.

Код, который я использую.

SELECT Count(part_shipment.Customer_Station_ID) AS Contact, 
    part_shipment.Customer_Station_ID AS Customer 
FROM part_shipment 
GROUP BY part_shipment.Customer_Station_ID 
UNION 
SELECT Count(system_shipments.Customer_Station_ID) AS Contact, 
    system_shipments.Customer_Station_ID AS Customer 
FROM system_shipments 
GROUP BY system_shipments.Customer_Station_ID 
ORDER BY Contact DESC

Ответы [ 3 ]

0 голосов
/ 22 декабря 2011

UNION требует создания производных таблиц (таблиц, созданных по запросу).

SELECT * 
FROM (
    SELECT col1, col2
    FROM table
) UNION (
    SELECT col1, col2
    FROM otherTable
)

Я также не думаю, что вы можете использовать GROUP BY внутри селекторов, из которых состоит UNION (прошло много времени с тех пор, как я его использовал, поэтому точно не помню)

0 голосов
/ 22 декабря 2011

Вы пытались использовать GROUP BY и SUM из результатов запроса UNION?

0 голосов
/ 22 декабря 2011

Вы не можете так делать. Union просто берет строки из первого запроса и строки из второго запроса и «отображает» их один за другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...