我有一大堆的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...
是否有加入对存储过程的问题?我的方法好吗?
非常感谢你能告诉我如何select *,count(*)....等于有count ...? –
添加了一些显示simularity的代码。正如其他人所指出的,TVF就是你所描述的内容,但考虑到你的代码,我会花一些时间看看是否没有其他方法。在不了解您的模式和数据的情况下,我当然不能肯定地说,但我认为您的方法不太可能是您尝试解决任何问题的最佳解决方案。 – jmoreno
非常感谢我检查了这一点! –