记录在表格中重复

时间:2013-09-19 15:26:12

标签: sql sql-server sql-server-2008

早上好,我的下表有以下记录

Mov Descip  Correlativo Total
25558   AAAAAAAA    1   540
25558   AAAAAAAA    2   540
25559   BBBBBBBBB   3   40
25560   CCCCCCCCC   4   50
25561   DDDDDDDD    5   120
25561   DDDDDDDD    6   120
25561   DDDDDDDD    7   120

不知道怎么做查询给我看,但没有重复记录,我试过用DISTINCT不起作用。

2 个答案:

答案 0 :(得分:3)

取决于你想从这张表中得到什么:

Mov Descip Correlativo Total 
25558 AAAAAAAA 1 540 
25558 AAAAAAAA 2 540 
25559 BBBBBBBBB 3 40 
25560 CCCCCCCCC 4 50 
25561 DDDDDDDD 5 120 
25561 DDDDDDDD 6 120 
25561 DDDDDDDD 7 120

这些行都是不同的,因为Correlativo是唯一的,所以DISTINCT关键字将返回所有七行:

SELECT DISTINCT Mov, Descip, Correlativo, Total
FROM YourTableName

如果从选择列表中删除Correlativo,那么DISTINCT应该将其减少到四行:

SELECT DISTINCT Mov, Descip, Total
FROM YourTableName

您也可以使用GROUP BY,但是您必须使用聚合函数来告诉SQL Server如何处理Correlativo的多个值。例如,您可以使用MIN(),MAX()或SUM():

SELECT Mov, Descip, SUM(Correlativo), Total
FROM YourTableName
GROUP BY Mov, Descip, Total

答案 1 :(得分:0)

就我所见,你的问题对细节有点了解:

  • Correlativo(西班牙语中的名字暗示):ID(自动编号?)每行显然不同。
  • MovabreviacióndeMovimiento?):动作是不是?或者是移动者身份?
  • 描述:只是文字通用描述
  • 总计:是您要添加的总数

如果这些是正确的,并且建立在critialfix的解决方案之上,那么每个Mov添加总数将是:

SELECT Mov, Sum (Total)
FROM YourTableName
GROUP BY Mov

或者如果需要Descrip:

SELECT Mov, Descip, Sum(Total)
FROM YourTableName
GROUP BY Mov, Descip