私は、ID番号に基づいて一連の人々を削減するCTEを持っています。現時点では、これをテストする良い方法がありません。これまで、削除ステートメントと組み合わせてCTEを使用したことはありません。これは正しいと思いますが、確信が持てたら続行したいと思います。
これをテストしたところ、次のエラーが発生しました。
(影響を受ける0行)
メッセージ208、レベル16、状態1、行35
無効なオブジェクト名'x'。
私はここで何が間違っているのですか?
--this CTE pares down the number of people that I need for my final result set
;with x as (select distinct patid from
(
select distinct patid
from clm_extract
where (diag1 like '952%' or diag1 like '806%') and drg =444
union
select distinct patid
from clm_extract
where (diag2 like '952%' or diag2 like '806%') and drg =444
union
select distinct patid
from clm_extract
where (diag3 like '952%' or diag3 like '806%') and drg =444
union
select distinct patid
from clm_extract
where (diag4 like '952%' or diag4 like '806%') and drg =444
union
select distinct patid
from clm_extract
where (diag5 like '952%' or diag5 like '806%') and drg =444
) x
)
--this is a query to show me the list of people that I need to delete from this table because they do not match the criteria
select distinct x.patid
from x
inner join clm_extract as c on c.patid = x.patid
where x.patid !=1755614657 (1 person did match)
--this is my attempt at using a CTE with said query to remove the IDs that I don't need from my table
delete from clm_extract
where patid in(select distinct x.patid
from x
inner join clm_extract as c on c.patid = x.patid
where x.patid !=1755614657)