报告的前 n 个,其余部分与其他报告相同

Top nth of a report with rest as other

我有一个按供应商显示总金额的查询。我想要一份报告,其中显示前 9 名,其余的在“其他”供应商下添加在一起。因此,详细信息显示前 9 名供应商,其余为其他组,报告中的总数包括所有。

我无法获得前 9 名,但如何获得“其他”

我使用 MS Access 2007


编辑:

我还需要添加另一个登记册中的公司名称。 t_costed 具有值,链接到具有公司名称的 t_register_2bre,链接到具有公司名称的 t_contacts_company

我知道 select 查询返回的列数在两个联合查询中必须相等,但我正在努力处理 INNER JOIN.

您可以按以下方式使用 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 的引用更改为您 table 的名称。


编辑:

根据您问题中提供的额外信息,我建议以下内容(未经测试)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
)