SQL - 返回仅包含满足要求的字段

时间:2013-04-10 15:37:10

标签: sql

我正在尝试执行以下操作:

指定一个Y / N标志作为事先批准,其中包括BI限制为25/50且PD限制为25且没有其他保险的策略的所有策略。

所以这段代码满足第一个要求:

SELECT DISTINCT
        PolNum
FROM    Results_Vehicle
WHERE   ( CovCode = 'BI'
          AND CovLimit = '25/50'
        )
        OR ( CovCode = 'PD'
             AND CovLimit = '25'
           )

我无法弄清楚如何不包含其他覆盖范围的记录。因此,基本上对于每个策略,它们可以具有UMBI,COL,REN,BI,PD等的CovCodes。但是,如果对于该PolNum,它们仅应给出Y,它们仅具有BI或PD作为CovCode和上面定义的CovLimit。

所以我也需要把它放在Y / N格式中,如下所示,显然这只满足要求的第一部分:

SELECT  CASE WHEN ( CovCode = 'BI'
                    AND CovLimit = '25/50'
                  )
                  OR ( CovCode = 'PD'
                       AND CovLimit = '25'
                     ) THEN 'Y'
             ELSE 'N'
        END AS PriorApproval
FROM    Results_Vehicle

1 个答案:

答案 0 :(得分:0)

下面这个查询怎么样?联合查询为您提供了具有该类型覆盖范围的所有PolNum的组合列表,因此您执行not in为您提供该列表中不包含的所有策略编号,然后执行{ 列表上的{1}},它应该为您留下仅具有所需覆盖范围且没有其他覆盖范围的PolNum。

not in

FROM Results_Vehicle