Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要删除重复数据吗_Sql_Sql Server - Fatal编程技术网

Sql 需要删除重复数据吗

Sql 需要删除重复数据吗,sql,sql-server,Sql,Sql Server,下面是我通过两个临时表之间的简单联接获得的表。现在预期的结果有点难以解释,我甚至不知道从哪里开始。因此,我将发布预期结果,并回答可能出现的任何问题 编辑:基本上需要两列中的每个日期只显示一次 +----+------------------+----------------+----------------------+----------- ---------+-----------------------+---------------------+ | ID | Date from

下面是我通过两个临时表之间的简单联接获得的表。现在预期的结果有点难以解释,我甚至不知道从哪里开始。因此,我将发布预期结果,并回答可能出现的任何问题

编辑:基本上需要两列中的每个日期只显示一次

+----+------------------+----------------+----------------------+-----------     ---------+-----------------------+---------------------+
| ID | Date from Source | Date to source | From Source Revision | To source Revision | From Source InstantID | To Source InstantID |
+----+------------------+----------------+----------------------+--------------------+-----------------------+---------------------+
| 45 | 2015-06-19       | 2015-07-06     | P0                   | P0                 |                     1 |                   3 |
| 45 | 2015-06-19       | 2015-07-09     | P0                   | P0                     |                     1 |                   5 |
| 45 | 2015-07-27       | 2015-07-06     | P0                   | P0                 |                     6 |                   3 |
| 45 | 2015-07-27       | 2015-07-09     | P0                   | P0                 |                     6 |                   5 |
| 45 | 2015-07-28       | 2015-07-06     | P0                   | P0                 |                     7 |                   3 |
| 45 | 2015-07-28       | 2015-07-09     | P0                   | P0                 |                     7 |                   5 |
| 45 | 2015-07-30       | 2015-07-06     | P0                   | P0                 |                     8 |                   3 |
| 45 | 2015-07-30       | 2015-07-09     | P0                   | P0                  |                     8 |                   5 |
+----+------------------+----------------+----------------------+--------------------+-----------------------+---------------------+
预期结果

+----+------------------+----------------+----------------------+--------------------+-----------------------+---------------------+
| ID | Date from Source | Date to source | From Source Revision | To source Revision | From Source InstantID | To Source InstantID |
+----+------------------+----------------+----------------------+--------------------+-----------------------+---------------------+
| 45 | 19-06-2015       | 06-07-2015     | P0                   | P0                 |                     1 |                   3 |
| 45 |                  | 09-07-2015     | P0                   | P0                 |                       |                   5 |
| 45 | 27-07-2015       |                | P0                   | P0                 |                     6 |                     |
| 45 | 28-07-2015       |                | P0                   | P0                 |                     7 |                     |
| 45 | 30-07-2015       |                | P0                   | P0                 |                     8 |                     |
+----+------------------+----------------+----------------------+--------------------+-----------------------+---------------------+
试试这个:

DELETE FROM myTable WHERE Id IN (
    SELECT Id FROM (SELECT Id
   ,ROW_NUMBER() OVER (PARTITION BY [Date from Source] ORDER BY [Date from Source]) AS [rn]             
        FROM myTable 
    ) a WHERE rn > 1 
)

您是否尝试使用Select Distinct语句?我可以看到源中日期的类型行,因为19Jun和27July完全相同,但即使如此,为什么19Jun有两行,而27July和其余都是单行?查看您的输出数据,似乎您需要使用游标来实现这一点。您实际上不需要选择除RN之外的所有其他数据,对吗?另外,
DELETE FROM CTE
会知道如何引用实际表格吗?
CTE
不只是一个结果集吗?如果
CTE
将有多个
连接
,那么
删除
将如何工作?嗨@RaduGheorghiu,如果我提到我的结果集中只需要两个日期列,这有什么关系吗?@crasster:-更新了!