首页 > 解决方案 > 加入具有多个值的不同列时获得相同的结果

问题描述

我想对表 A 求和并得到属于他们 personID 的人的名字,但是当我这样做时,我得到了完全不同的结果。我知道问题是什么,但我不知道如何纠正它。

SELECT PERSONID, SUM(DEBIT)
FROM TABEL A
GROUP BY PERSON ID

我得到以下结果。这是一个正确的。

q

在此处输入图像描述

但是当我加入表 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 的人的一个名字,而不影响金额。

在此处输入图像描述

标签: sqlsql-servertsql

解决方案


我们可以在 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

推荐阅读