如何总结2记录使用左连接在SQL Server时?

问题描述 投票:1回答:1

我有一个问题,当我用左手通过运行此代码加入和组:

select   a.[fromAccCode] 
    ,a.[CenterCode]    
  , CASE WHEN b.CFCUSTYP = 0 THEN 'm' ELSE 'n' END AS person
 ,sum(a.[value]) 'sumValue'
  from  [dbo].[tmp_dep_ex] a left join [dbo].[5_CBCIF] b
  on a.[CFCIFNO]=b.[CFCIFNO]
  group by  a.[CenterCode] 
  ,a.[fromAccCode]
  ,b.CFCUSTYP
  order by 
  a.[CenterCode] 
  ,a.[fromAccCode]
  ,b.CFCUSTYP

其结果是:

结果是

fromAccCode | CenterCode | person | sumValue

201443      | 3/2/0160   | m      | 1707632873

201443      | 3/2/0160   | n      | 8723822181

201443      | 3/2/0160   | m      | 173260000

如何改变这种结果:

fromAccCode | CenterCode | person | sumValue

201443      | 3/2/0160   | m      | 1880892873

201443      | 3/2/0160   | n      | 8723822181

感谢您阅读我的问题。

sql sql-server
1个回答
3
投票

你需要子句中组添加CASE WHEN b.CFCUSTYP = 0 THEN 'm' ELSE 'n' END

select   a.[fromAccCode] 
    ,a.[CenterCode]    
  , CASE WHEN b.CFCUSTYP = 0 THEN 'm' ELSE 'n' END AS person
 ,sum(a.[value]) 'sumValue'
  from  [dbo].[tmp_dep_ex] a left join [dbo].[5_CBCIF] b
  on a.[CFCIFNO]=b.[CFCIFNO]
  group by  a.[CenterCode] 
  ,a.[fromAccCode]
  ,CASE WHEN b.CFCUSTYP = 0 THEN 'm' ELSE 'n' END
  order by 
  a.[CenterCode] 
  ,a.[fromAccCode]
© www.soinside.com 2019 - 2024. All rights reserved.