sql - 加入具有多个值的不同列时获得相同的结果
问题描述
我想对表 A 求和并得到属于他们 personID 的人的名字,但是当我这样做时,我得到了完全不同的结果。我知道问题是什么,但我不知道如何纠正它。
SELECT PERSONID, SUM(DEBIT)
FROM TABEL A
GROUP BY PERSON ID
我得到以下结果。这是一个正确的。
但是当我加入表 BI 时,借方金额会更高。
SELECT A.PERSONID, SUM(A.DEBIT), B.NAME_FAM_MEMBER, B,NAME_DECEASED FROM TABELA A
JOIN TABLEB B
ON B.PERSONID = A.PERSONID
GROUP BY A.PERSONID, B.NAME_FAM_MEMBER, B,NAME_DECEASED
我只想要属于 personID 的人的一个名字,而不影响金额。
解决方案
我们可以在 Personid 中显示所有三个记录,如果您只需要显示一个,您必须定义“规则”来说明您的偏好。
例如:
with sum_data
as (
select PERSONID
, SUM(DEBIT) as tot_sum
from TABLEA
group by PERSON ID
)
select b.
from sum_data sd
join TABLEB b
on sd.personid=b.personid
推荐阅读
- firebase - ionic 3 - 在 Ionic 上接收推送通知不起作用
- python - Python:比较两个列表并获取带符号的最大值和最小值
- android - Android 搜索视图删除十字图标
- r - 具有程序名称的重复列
- deep-learning - pytorch - loss.backward() 和 optimizer.step() 在具有批处理规范层的评估模式下?
- opencv - triangulatePoints() 方法给出错误的 3D 坐标
- php - 无法从 PHP 中的命名空间类调用全局类。使用 Composer 的自动加载
- angular - 是否可以在引导模式中使用路由器插座?
- python - 如何找出用于使用 sklearn GridSearch 开发模型的特征名称?
- css - 路由的不同css样式表