在连接具有多个值的不同列时获得相同的结果

ryevplcw  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(301)

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

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

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


但当我加入表b时,我得到了更高的借方金额。

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

我只想要一个人的名字,但不影响金额。

72qzrwbm

72qzrwbm1#

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

相关问题