Sql server 如何选择没有重复项的行

Sql server 如何选择没有重复项的行,sql-server,Sql Server,我有一个疑问让我有点挠头 我有一张交易记录表。它包括类型、日期、时间、数量等。大约有30种类型。不幸的是,类型1和类型2可能成对出现,日期、时间和数量让我知道它们是否确实是重复的同一事务 我是否可以获取所有类型的所有行(不包括日期、时间和数量匹配的类型1和类型2) 输入示例: Row | Type | Qty | Date | Time | 1 | 1 | 12 | 2015-01-06 00:00:00.000| 74501| 2 | 1

我有一个疑问让我有点挠头

我有一张交易记录表。它包括类型、日期、时间、数量等。大约有30种类型。不幸的是,类型1和类型2可能成对出现,日期、时间和数量让我知道它们是否确实是重复的同一事务

我是否可以获取所有类型的所有行(不包括日期、时间和数量匹配的类型1和类型2)

输入示例:

Row | Type | Qty | Date                   | Time |
1   |  1   | 12  | 2015-01-06 00:00:00.000| 74501|
2   |  1   | 15  | 2015-02-06 00:00:00.000| 91023|
3   |  2   | 15  | 2015-02-06 00:00:00.000| 91023|
4   |  3   | 7   | 2015-03-10 00:00:00.000|151256|
问题是,第2行和第3行表示相同的事务。因此,我的select语句需要返回第1、3、4行(或第1、2、4行)

注意:类型2总是有类型1,类型1并不总是有类型2


请帮我把这个短语说得更好

您只需在分区中的列表后面添加更多列即可

WITH dups AS 
  (SELECT *, row_number() over 
    (PARTITION by Date, Time, Quantity ORDER BY type) 
   AS c1 FROM t2)

SELECT DISTINCT type, date, time, quantity 
FROM dups 
WHERE c1 > 1 
AND type not in (1,2)

请发布示例数据和期望的结果,以便更好地解释您正在尝试做什么。尽管我怀疑您可以在选择列表和分组方式中对案例陈述执行所需操作。有什么方法可以添加表格吗?您可以将任何格式的文本复制并粘贴到问题中。您可以使用{}代码视图按钮保留确切的格式,而不是忽略所有换行符。