Как объединить несколько записей в новое значение в запросе доступа Microsoft? - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь агрегировать общую сумму [награды] и количество [счетчик] для различных [типов заказа]. Есть ли способ сгруппировать все существующие типы PO в одно значение «SRM» в одном запросе?

Конечный результат, который мне нужен - одна запись: SRM | 37 823 372,89 $ | 1732

enter image description here Вот текущий SQL:

SELECT tblSRMECC.[PO Type], Sum(tblSRMECC.Award) AS SumOfAward, Count(tblSRMECC.[Counter (PO)]) AS 
[CountOfCounter (PO)]
FROM tblSRMECC
GROUP BY [PO Type]
HAVING (((tblSRMECC.[PO Type])<>"AutoPO" And (tblSRMECC.[PO Type])<>"Fixed Price Catalog"));

1 Ответ

1 голос
/ 27 мая 2020

Один из способов сделать это - изменить существующий запрос, добавив UNION, который выполняет промежуточный итог. Примерно так, как ваш SQL:

SELECT 0 AS DataSortOrder, tblSRMECC.[PO Type], Sum(tblSRMECC.Award) AS SumOfAward, Count(tblSRMECC.[Counter (PO)]) AS 
[CountOfCounter (PO)]
FROM tblSRMECC
GROUP BY [PO Type]
HAVING (((tblSRMECC.[PO Type])<>"AutoPO" And (tblSRMECC.[PO Type])<>"Fixed Price Catalog"))
UNION SELECT 1,"SRM",Sum(tblSRMECC.Award), Count(tblSRMECC.[Counter (PO)]) 
FROM tblSRMECC
HAVING (((tblSRMECC.[PO Type])<>"AutoPO" And (tblSRMECC.[PO Type])<>"Fixed Price Catalog"))
ORDER BY 1,2

Дополнительный столбец, который я добавил, DataSortOrder, предназначен только для того, чтобы убедиться, что итог отображается после отдельных итогов.

Если вы хотите показать только общую сумму, тогда вы можете просто использовать часть запроса, которую я добавил:

SELECT "SRM",Sum(tblSRMECC.Award), Count(tblSRMECC.[Counter (PO)]) 
FROM tblSRMECC
HAVING (((tblSRMECC.[PO Type])<>"AutoPO" And (tblSRMECC.[PO Type])<>"Fixed Price Catalog"))

С уважением,

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