如何编写SQL实现整数货币类预算与交易数据的差值求和查询
问题背景
现有两张存储整数货币值的数据表:
- 预算表
bud_tab:包含id、budget两个字段,示例数据如下:- id=1,budget=90
- id=2,budget=80
- id=3,budget=50
- id=4,budget=30
- 交易表
trans_tab:包含id、trans两个字段,存储带正负值的交易数据,负交易值与预算做减法运算时结果会增大,示例数据如下:- id=1,trans=-50
- id=2,trans=80
- id=3,trans=-70
- id=4,trans=60
需要按id关联匹配两表,查询输出budget、trans、total三个字段,其中total为budget减去trans的计算结果,输出需匹配预期total值:id1对应140、id2对应0、id3对应120、id4对应-30。
实现方案
直接通过id做内连接,在SELECT子句中直接做减法运算即可,负数参与减法时会自动转为加正数,完全符合计算逻辑要求,SQL语句如下:
SELECT b.budget, t.trans, b.budget - t.trans AS total FROM bud_tab b JOIN trans_tab t ON b.id = t.id;
结果校验
逐行计算验证结果完全匹配预期:
- id=1:
90 - (-50) = 140 - id=2:
80 - 80 = 0 - id=3:
50 - (-70) = 120 - id=4:
30 - 60 = -30
内容的提问来源于stack exchange,提问作者Deuxst
相关产品推荐
相关产品推荐

