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

如何用SQL从LookupTable取值计算每条记录的总分?

SQL实现多字段关联Lookup表计算总分

要实现类似Excel VLOOKUP的关联并计算总分,核心思路是多次关联LookupTable表,分别获取三个字段对应的分数后求和。以下是具体实现代码:

SELECT
    aa.RequestID,
    -- 用COALESCE处理可能的NULL(当LookupID不存在时默认取0)
    COALESCE(lu1.LookupScore, 0) +
    COALESCE(lu2.LookupScore, 0) +
    COALESCE(lu3.LookupScore, 0) AS TotalScore
FROM ApplicationAssessment aa
-- 关联NumUsers对应的分数
LEFT JOIN LookupTable lu1 ON aa.NumUsers = lu1.LookupID
-- 关联RegulatoryImpact对应的分数
LEFT JOIN LookupTable lu2 ON aa.RegulatoryImpact = lu2.LookupID
-- 关联ReputationalImpact对应的分数
LEFT JOIN LookupTable lu3 ON aa.ReputationalImpact = lu3.LookupID;

关键说明:

  • 使用LEFT JOIN而非INNER JOIN:确保即使某个字段的LookupID在LookupTable中不存在,对应的RequestID也不会被过滤掉,而是用0代替缺失的分数。
  • 表别名(lu1、lu2、lu3):因为多次关联同一张表,必须用别名区分不同的关联逻辑,对应三个不同的字段。
  • COALESCE函数:如果关联后没有匹配到分数(返回NULL),自动替换为0,避免总分计算结果为NULL。

比如你提到的RequestID=1000,假设三个字段对应的LookupID分别匹配到分数0、0、1,求和后TotalScore就是1;RequestID=2000对应分数10、10、2,总分就是22,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:12:02