Sql 选择没有大于X的值的位置

Sql 选择没有大于X的值的位置,sql,Sql,我当前正在运行此查询: SELECT DISTINCT f.FormName FROM PatientTask as pt INNER JOIN ClinicTask ct ON pt.fTaskKey = ct.fTaskKey INNER JOIN Form f ON ct.fFormKey = f.FormKey WHERE pt.TaskTargetDate <= CONVERT(datetime

我当前正在运行此查询:

SELECT DISTINCT f.FormName
  FROM PatientTask as pt
    INNER JOIN ClinicTask ct 
               ON pt.fTaskKey = ct.fTaskKey
    INNER JOIN Form f 
               ON ct.fFormKey = f.FormKey
 WHERE pt.TaskTargetDate <= CONVERT(datetime, '2012-01-01');
选择不同的f.FormName
从PatientTask作为pt
内连接任务ct
在pt.fTaskKey=ct.fTaskKey上
内连接形式f
在ct.fFormKey=f.FormKey上

其中,pt.TaskTargetDateA
不在
中应给出以下结果:

Select DISTINCT f.FormName
   FROM Form f
   WHERE  f.FormKey NOT IN
   (
       SELECT ct.fFormKey
           From PatientTask as pt
           Inner Join ClinicTask ct on pt.fTaskKey = ct.fTaskKey
           WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
   )

此外,
转换
也不是必需的-SQL将自动将
'2012-01-01'
解析为日期,因为它将与日期值进行比较

a
不在
中,应给出以下结果:

Select DISTINCT f.FormName
   FROM Form f
   WHERE  f.FormKey NOT IN
   (
       SELECT ct.fFormKey
           From PatientTask as pt
           Inner Join ClinicTask ct on pt.fTaskKey = ct.fTaskKey
           WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
   )

此外,
转换
也不是必需的-SQL将自动将
'2012-01-01'
解析为日期,因为它将与日期值进行比较

a
不在
中,应给出以下结果:

Select DISTINCT f.FormName
   FROM Form f
   WHERE  f.FormKey NOT IN
   (
       SELECT ct.fFormKey
           From PatientTask as pt
           Inner Join ClinicTask ct on pt.fTaskKey = ct.fTaskKey
           WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
   )

此外,
转换
也不是必需的-SQL将自动将
'2012-01-01'
解析为日期,因为它将与日期值进行比较

a
不在
中,应给出以下结果:

Select DISTINCT f.FormName
   FROM Form f
   WHERE  f.FormKey NOT IN
   (
       SELECT ct.fFormKey
           From PatientTask as pt
           Inner Join ClinicTask ct on pt.fTaskKey = ct.fTaskKey
           WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
   )

此外,
转换
也不是必需的-SQL将自动将
'2012-01-01'
解析为日期,因为它将与日期值进行比较

您可以使用左外联接:

Select 
    DISTINCT f.FormName, pt.fTaskKey 
From 
    Form f left outer join ClinicTask ct 
    on ct.fFormKey = f.FormKey 
    Inner Join 
        (
        select fTaskKey 
        from PatientTask
        WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
        ) pt 
on pt.fTaskKey = ct.fTaskKey
where ct.fFormKey is null

可以使用左外连接:

Select 
    DISTINCT f.FormName, pt.fTaskKey 
From 
    Form f left outer join ClinicTask ct 
    on ct.fFormKey = f.FormKey 
    Inner Join 
        (
        select fTaskKey 
        from PatientTask
        WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
        ) pt 
on pt.fTaskKey = ct.fTaskKey
where ct.fFormKey is null

可以使用左外连接:

Select 
    DISTINCT f.FormName, pt.fTaskKey 
From 
    Form f left outer join ClinicTask ct 
    on ct.fFormKey = f.FormKey 
    Inner Join 
        (
        select fTaskKey 
        from PatientTask
        WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
        ) pt 
on pt.fTaskKey = ct.fTaskKey
where ct.fFormKey is null

可以使用左外连接:

Select 
    DISTINCT f.FormName, pt.fTaskKey 
From 
    Form f left outer join ClinicTask ct 
    on ct.fFormKey = f.FormKey 
    Inner Join 
        (
        select fTaskKey 
        from PatientTask
        WHERE pt.TaskTargetDate >= CONVERT(datetime, '2012-01-01')
        ) pt 
on pt.fTaskKey = ct.fTaskKey
where ct.fFormKey is null