SQL查询求和

SQL查询求和,sql,Sql,我有两张桌子 单位 Unit_id Unit_name Unit_cost 组件 Component_id Component_name Unit_id 它们通过单元id链接在一起 Unit\u id=1具有名称的成本为100的Unit 1 name在组件中有大量记录 Unit\u id=2名称为Unit 2 name且成本为200的,在组件中也有大量记录 因此,总成本取决于组件表中与单元中的单元id匹配的记录数,以及单元表中的单价 我需要Unit表中总成本最高(Unit.Unit\u co

我有两张桌子

单位

Unit_id
Unit_name
Unit_cost
组件

Component_id
Component_name
Unit_id
它们通过
单元id
链接在一起

Unit\u id=1
具有名称的
成本为100的Unit 1 name
组件中有大量记录

Unit\u id=2
名称为
Unit 2 name
且成本为200的,在
组件中也有大量记录

因此,总成本取决于
组件
表中与
单元
中的
单元id
匹配的记录数,以及
单元
表中的
单价

我需要
Unit
表中总成本最高(
Unit.Unit\u cost
)的一个单元的单个
Unit\u名称。注:我只需要单位名称,而不是总成本


在查询中最好使用
Top(1)
?查询结果如何?

我想您希望这样:

select top (1) u.unit_name
from unit u join
     component c
     on c.unit_id = u.unit_id
group by u.unit_id, u.unit_name
order by sum(c.cost) desc;

假设单位成本应乘以相关组件的数量:

select top 1 name from(
select u.unit_name AS name, count(c.component_id) * u.unit_cost AS cost
from unit u join components c on u.unit_id = c.unit_id)
order by cost desc

在“计算内部查询名称和单位成本”中,在“外部查询”中,选择“具有最大成本的单位的名称”。如果需要以其他方式计算成本,请在查询中更改
计数(c.组件id)*u.单位成本
公式

是否可以添加测试数据并解释如何根据相关组件的计数计算总成本?您应该确定您使用的DBMS;答案可能会有所不同。