次のような結果セットを返すテーブル値関数があります
id condition state costs
1 yes 300
2 yes 1000
3 yes 120
4 no 20
5 no 240
関数自体はこのクエリに基づいています
;with x
as
(
select c.pat_id
,sum(std_cost) as Costs
from claims as c
where c.pat_id in
(
select c.pat_id
from claims as c
where c.admission_date between '2007-01-01' and '2007-01-31'
)
group by c.pat_id
),y
as
(
select c.pat_id
from claims as c
inner join icd_patient as i
on i.id=c.id
inner join tblicd as t
on t.icd=i.icd
where t.icd like '707%'
group by c.pat_id
)
select [Condition State]
,count(*) as [Number Patients]
,avg(costs) as [Average Healthcare costs]
from
(
select x.pat_id
,case when y.pat_id is null then 'Condition Absent' else 'Condition Present' end as [Condition State]
,costs
from x
left join y on x.pat_id=y.pat_id
)r
group by [Condition State]
もちろん、この行LIKE '707%'
は関数内のパラメーターに置き換えられます。tbliICD
この関数の入力パラメーターのソースであるコードのリストを含むというテーブルがあります。テーブル内のすべてのコードに対してこのクエリを実行する方法を知りたいtblicd
です。これを行うには、どのような方法を使用できますか? 必要なすべてのコードを含むテーブル値パラメーターを送信し、コードごとに関数を 1 回実行することは可能ですか?