我有一个查询,显示供应商的总金额。我想要一个报告,其中前9显示,其余的是相加在一起下的“其他”供应商。因此,详细情况显示前9名供应商,其他组,其余和报告的总数包括所有。
我无法获得前九名,但我如何获得“其他人”?
我使用MS Access 2007
编辑:
我还需要添加一个公司名称,这是在另一个注册。t_costed有价值,链接到有公司的t_register_2bre,链接到有公司名称的t_contacts_company。
我知道,在两个联合查询中,select查询返回的列数量必须相等,但我正在与INNER JOIN进行斗争。

发布于 2019-01-15 12:53:04
您可以以下列方式使用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的所有引用。
编辑:
在您的问题中提供了其他信息之后,我建议使用以下(未经测试的) 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
)https://stackoverflow.com/questions/54197843
复制相似问题