小编AS9*_*S91的帖子

根据单个值排除整个组

药片

CID Code
1    A
1    B
1    C
2    C
2    A
2    B
3    A
3    D
Run Code Online (Sandbox Code Playgroud)

我希望输出只有那些 CID 组 Code <> 'C'

期望输出:

CID  Code
3     A
3     D
Run Code Online (Sandbox Code Playgroud)

查询尝试:

SELECT DISTINCT
         CID
        ,Code
FROM Table T
WHERE Code <> 'C'
Run Code Online (Sandbox Code Playgroud)

但这将排除代码 = C 的行,而不是代码 = C 的整个组。不知道如何GROUP BY在这里工作

sql sql-server select group-by sql-server-2012

5
推荐指数
2
解决办法
1686
查看次数

一起选择 MIN Date(使用 WINDOW 函数)和 MAX Date(使用 JOIN 关联字段)

表 T1

+----+------------+------------+--------+------+
| ID |   Sdate    |   Edate    | Reason | Type |
+----+------------+------------+--------+------+
|  1 | 5/30/2016  |            |        | A    |
|  1 | 1/19/2016  | 12/15/2016 | USD    | B    |
|  1 | 11/20/2016 | 10/1/2016  | IT     | B    |
|  2 | 10/25/2016 |            |        | A    |
|  2 | 9/22/2016  | 7/11/2016  | SD     | B    |
|  2 | 2/13/2016  |            |        | A    |
|  2 | 1/1/2016   | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server greatest-n-per-group window-functions sql-server-2012

4
推荐指数
1
解决办法
8505
查看次数