Sql 选择并添加重复记录的值

Sql 选择并添加重复记录的值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想要求和,如果它存在于复制单元号的三列中的任何一列中。如果使用下面的查询,则获取错误。谢谢你的帮助。多谢各位 select RANK() OVER(PARTITION BY unitNumber order by tableA.id) as unitnumber, ColA, ColC, ColB from tableA join tableB on tableA.id = TableB.id where unitNumber > 1 and tableB .adm_D

我想要求和,如果它存在于复制单元号的三列中的任何一列中。如果使用下面的查询,则获取错误。谢谢你的帮助。多谢各位

select RANK() OVER(PARTITION BY unitNumber order by tableA.id) as unitnumber, ColA, ColC, ColB 
from tableA join 
     tableB on tableA.id = TableB.id
where unitNumber > 1
  and tableB .adm_Date between 01-01-2013 and 12-31-2013

Data:

 unitNumber colA  colB   ColB
  235       402   88     null
  245       null  501    522
  255       110   550    null
  245       85    null   101
  215       90    null   20
  275       852   225    null
  215       70    null   20
  225       null  null   null
输出应该是

  unitNumber   colA    colB    ColB
    235         402     88     null
    245          85    501     623------added the values in colA, ColB
    275         852    225     null
    215         160   null     40 ------added the calues colA and ColB

你不需要排名函数。您所需要的只是按单元编号分组。我是根据您的源和目标数据进行查询的

SELECT UnitNumber, SUM(ISNULL(ColA, 0)) ColA, SUM(ISNULL(ColB, 0)) ColB, SUM(ISNULL(ColC, 0)) ColC 
from tableA join 
     tableB on tableA.id = TableB.id
where unitNumber > 1
  and tableB.adm_Date between 01-01-2013 and 12-31-2013
GROUP BY UnitNumber
假设所有数据都在同一个表中

SELECT UnitNumber, SUM(ISNULL(ColA, 0)) ColA, SUM(ISNULL(ColB, 0)) ColB, SUM(ISNULL(ColC, 0)) ColC 
from tableA 
where unitNumber > 1
  and tableA.adm_Date between 01-01-2013 and 12-31-2013
GROUP BY UnitNumber

谢谢@Anup Agarwal。因为select语句中包含的其他计算列很少,所以有没有办法在where子句中写入上面的isnull。已尝试使用“having”,但不起作用。@user3502587如果有其他计算列可以使用外接程序Select子句,也可以在having子句中使用它们。如果你能显示更多的数据,你会更容易理解你的要求。另外,为了避免移动门柱的情况,如果这是一个全新的问题,最好开始一个新的线程。我使用case…when..然后填充colA、colB和colC。我也有ID和代码栏。在“sumnullif”和“group by”上面与case…when..语句一起使用,但仍不能累加重复的UNITNUMER。谢谢你的帮助。id单元号colA colB colB代码51 235 402 88 null tx 52 245 null 501 522 cg 53 255 110 550 null fw 54 245 85 null 101 mx 55 275 852 225 null tx 56 215 70 null 20 mx 56 225 null null mx什么是表格A和表格B。是同一张桌子吗?代码字段的用途是什么。如果您的所有数据都在一个表中,我已经更新了我的答案。所有列都来自表B,使用表A仅获取日期范围。我需要以.csv格式发送此数据以更新不同的applicationDb表。因此,当我导入这个.csv文件时,当它遇到重复的单位编号时,这个应用程序会抛出错误,但它可能有重复的ID。这就是我需要为重复的unit_number添加值的原因。此外,当我尝试上述查询时,它会要求聚合所有剩余的列,如果包括,uit编号仍然是重复的。希望我包括了所有的要点。谢谢