You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中Claim关联可变行数CostItem的total列合计计算方法

实现方案

你直接使用SQL的SUM()聚合函数对计算出的每行total值求和即可,不需要返回明细数据,直接聚合后返回单个合计值即可,修改后的查询语句如下:

SELECT 
    SUM(Cost * nCost) AS total
FROM 
    Claim
INNER JOIN 
    ClaimCrossCostItem ON Claim.ID = ClaimCrossCostItem.ClaimID
INNER JOIN 
    CostItem ON ClaimCrossCostItem.CostItemID = CostItem.ID
WHERE 
    CostItem.CostItemTypeID = 2 AND ClaimID = 1512969

说明

  • 聚合函数SUM()会自动对符合WHERE条件的所有行的Cost * nCost计算结果求和,不管符合条件的行数是1行还是多行,都可以正确计算合计值
  • 不需要额外加GROUP BY子句,因为你的过滤条件已经固定了单个ClaimID,查询结果只会返回一行合计数据,列名就是你需要的total
  • 如果你后续需要批量计算多个ClaimID的各自合计,只需要在SELECT里加上ClaimID,再补充GROUP BY ClaimID即可,示例如下:
-- 批量查询多个ClaimID合计的示例
SELECT 
    ClaimID,
    SUM(Cost * nCost) AS total
FROM 
    Claim
INNER JOIN 
    ClaimCrossCostItem ON Claim.ID = ClaimCrossCostItem.ClaimID
INNER JOIN 
    CostItem ON ClaimCrossCostItem.CostItemID = CostItem.ID
WHERE 
    CostItem.CostItemTypeID = 2
GROUP BY ClaimID

内容的提问来源于stack exchange,提问作者ajd871

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:15:01