sql-server - TSQL:如何确保一个ID有多行?

标签 sql-server tsql sql-server-2014

我需要确保每个 IncidentID 都有 2 个特定的 ResponseCodes(201 和 204)。如何识别不同时具有 201 和 204 的 IncidentID(如下图所示)?

数据集

enter image description here

我试图在数据集中识别什么

enter image description here

期望的结果集:

enter image description here

SQL Fiddle 对我不起作用,但测试代码如下:

CREATE TABLE DIS (
IncidentID NUMERIC,
ResponseCode NUMERIC,
ResponseCodeDescription varchar(30)
)

INSERT INTO DIS (IncidentID, ResponseCode, ResponseCodeDescription)
VALUES
      ( '999888', '201', 'OSS'), 
      ( '999888', '204', 'Long Term OSS'),
      ( '888777', '201', 'OSS'),
      ( '888777', '204', 'Long Term OSS'),
      ( '777666', '204', 'Long Term OSS'),
      ( '555444', '201', 'OSS'),
      ( '555444', '204', 'Long Term OSS')

SELECT 
    IncidentID
 ,  ResponseCode
 ,  ResponseCodeDescription
FROM DIS

谢谢!

最佳答案

试试这个:

SELECT IncidentID
FROM DIS
WHERE ResponseCode IN (201,204)
GROUP BY IncidentID
HAVING COUNT(DISTINCT ResponseCode) < 2

此查询将选择 ResponseCode 值等于 201204 但不能同时等于两者的 IncidentID 值.

关于sql-server - TSQL:如何确保一个ID有多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36285391/

相关文章:

c# - 从没有数据的查询中获取列名

c# - 如何将使用 SqlServer 作为数据库服务器的应用程序部署到 Azure Batch

sql-server - AppDomain 已卸载

sql-server - 外键约束引发错误但已停用

sql-server - 我可以在 BIDS 2008 中开发 SSIS 2005 吗?我们可以在 VS 2010 中选择目标框架的方式

sql - 基于两列创建数字规则

asp.net - 迁移到 Microsoft.Data.SqlClient 后没有 SQL 依赖项遥测

sql 复杂的行到列的转换

php - 您的 SQL 语法有误;和 $db->query(错误 : 1)

sql-server - 企业项目的 Access+SQL Server 替代方案