Первая часть отчета с отдыхом, как и другие - PullRequest
0 голосов
/ 15 января 2019

У меня есть запрос, который показывает общую сумму по поставщикам.Мне нужен отчет, в котором отображаются первые 9, а остальные добавляются вместе под «другим» поставщиком.Таким образом, в деталях показаны первые 9 поставщиков, остальные группы, а в отчет включены все данные.

Я не могу получить первые 9, но как мне получить «другие»

, которые я используюMS Access 2007


РЕДАКТИРОВАТЬ:

Мне также нужно добавить название компании, которая находится в другом реестре.t_costed имеет значение, связанное с t_register_2bre, в котором есть компания, связанное с t_contacts_company, в котором было название компании.

Я знаю, что количество столбцов, возвращаемых запросом select, должно быть одинаковым в двух объединенных запросах, но я борюсь с INNER JOIN.

Relationship

1 Ответ

0 голосов
/ 15 января 2019

Вы можете использовать запрос union следующим образом:

select top 9 t.amount
from table1 t
order by t.amount desc
union all
select sum(u.amount)
from table1 u
where 
u.amount < 
(
    select min(v.amount) 
    from 
    (select top 9 w.amount from table1 w order by w.amount desc) v
)

Здесь измените все ссылки на table1 с именем вашей таблицы.


EDIT:

С учетом дополнительной информации, содержащейся в вашем вопросе, я бы предложил следующий (непроверенный) SQL:

select top 9 c.company, t.amount
from 
    (t_costed t inner join t_register_2bre r on t.eventidbre = r.id_bre) 
    inner join t_contacts_company c on r.defaulting_partyid = c.id_contacts_company
order by t.amount desc
union all
select "Others" as company, sum(u.amount)
from t_costed u
where 
u.amount < 
(
    select min(v.amount) 
    from 
    (select top 9 w.amount from t_costed w order by w.amount desc) v
)
...