【发布时间】:2012-10-09 12:02:03
【问题描述】:
我有一堆WITH 声明:
;with OneAccession as (
select client_id,COUNT(patient_id) PatientCount from
(
select client_id,patient_id
from F_ACCESSION_DAILY
group by CLIENT_ID,PATIENT_ID
having COUNT(ACCESSION_ID)=1
) a
group by CLIENT_ID
)
,
TwoAccessions as (
select client_id,COUNT(patient_id) PatientCount from
(
select client_id,patient_id
from F_ACCESSION_DAILY
group by CLIENT_ID,PATIENT_ID
having COUNT(ACCESSION_ID)=2
) a
group by client_id
)
,
ThreeAccessions as (
select client_id,COUNT(patient_id) PatientCount from
(
select client_id,patient_id
from F_ACCESSION_DAILY
group by CLIENT_ID,PATIENT_ID
having COUNT(ACCESSION_ID)=3
) a
group by client_id
)
etc
我加入了这些声明
select * from myTable
join OneAccession
on...
join TwoACcessions
on...
join ThreeAccessions
我可以创建一个存储过程,而不是拥有所有这些 with 语句吗?我只需传递having count(accession_id)=**@myParam** 的值并执行此操作:
select * from myTable
join storedproc(1)
on...
join storedproc(2)
on...
etc...
加入存储过程是否有问题?我的方法可以吗?
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql