使用TSQL拉取策略号为X的所有行,其中至少有一行的trans代码为Y
我有一个表,行使用TSQL拉取策略号为X的所有行,其中至少有一行的trans代码为Y,tsql,where,temp-tables,Tsql,Where,Temp Tables,我有一个表,行policy_unbr和trans\cd。每个策略有多个trans_cd(即使是相同类型的)。我想提取所有保单记录,其中所述保单有trans\u cd的“ER”或“RO”。因此,任何policy\u nbr带有trans\u cd的'ER'或'RO'关联,我想将所有带有该policy\u nbr的条目拉入一些新的临时表,而不仅仅是带有'ER'或'RO'的条目 我现在掌握的代码是: SELECT * FROM urs_prem_detail_interim INTO ER_RO_ur
policy_unbr
和trans\cd
。每个策略有多个trans_cd(即使是相同类型的)。我想提取所有保单记录,其中所述保单有trans\u cd
的“ER”或“RO”。因此,任何policy\u nbr
带有trans\u cd
的'ER'或'RO'关联,我想将所有带有该policy\u nbr
的条目拉入一些新的临时表,而不仅仅是带有'ER'或'RO'的条目
我现在掌握的代码是:
SELECT * FROM urs_prem_detail_interim
INTO ER_RO_urs_prem_detail
WHERE uws_trans_cd IN ('ER','RO')
但我知道这不会真正起作用。例如,如果我有policy\u nbr
'123',并且有一个带有trans\u cd
的'ER'的保单编号条目,那么我想用policy\u nbr
123提取所有值,而不是像我当前代码那样只提取带有'ER'的值
非常感谢您的帮助!如果我的解释令人困惑,我深表歉意。使用子查询:内部
选择
查询将把trans\u cd的所有策略编号作为“ER”或“RO”拉入,然后外部查询将拉入具有匹配策略编号的所有记录
select *
from urs_prem_detail_interim
where policy_nbr in (select distinct policy_nbr
from urs_prem_detail_interim
where uws_trans_cd in ('ER', 'RO'))
您将需要使用子选择。我不再熟悉TSQL,但这将是要点:
SELECT * FROM urs_prem_detail_interim
INTO ER_RO_urs_prem_detail
WHERE policy_nbr in
(SELECT policy_nbr FROM urs_prem_detail_interim
WHERE uws_trans_cd IN ('ER','RO'))
这可以将记录插入现有表ER\u RO\u urs\u prem\u detail
。如果您想一步完成,您可能需要使用创建表ER\u RO\u Urs\u prem\u detail AS SELECT…
在不使用
INTO..
短语的情况下测试查询,以确保获得正确的数据。您可以使用子查询或将其与同一个表联接,以获得所需的结果集。