我从事件类型列表开始
CREATE TABLE [dbo].[jch_test_EventTypeName](
[EventTypeName] [varchar](50) NULL
) ON [PRIMARY]
GO
带有数据
EventTypeName
"Event Type A"
"Event Type B"
"Event Type C"
"Event Type D"
还有患者的事件列表
CREATE TABLE [dbo].[jch_test_Events](
[PatID] [varchar](50) NULL,
[EventTypeName] [varchar](50) NULL,
[EventTime] [varchar](50) NULL
) ON [PRIMARY]
GO
具有如下所示的数据
PatID EventTypeName EventTime
"abc" "Event Type A" 01:00
"abc" "Event Type B" 01:05
"abc" "Event Type C" 01:07
"xyz" "Event Type A" 01:00
"xyz" "Event Type C" 01:07
如何形成tsql查询以查看哪些患者缺少“事件类型D”?
答案 0 :(得分:2)
SELECT DISTINCT PatID
FROM jch_test_Events
WHERE PatId NOT IN (SELECT PatId FROM jch_test_Events WHERE EventTypeName = 'Event Type D')
只需对您的“排除”条件进行子选择
答案 1 :(得分:1)
这也应该起作用
select distinct PatID from [dbo].[jch_test_Events]
except
select distinct PatID from [dbo].[jch_test_Events]
where EventTypeName = 'Event Type D'