这是我想要做的概念。
我基本上有两组数据,一组用于当前信息,另一组用于存档信息。我需要将它们联合起来以在一个列表中显示它们。
我的查询比这复杂得多,但为了简单起见,我刚刚发布了我需要做的一般概念。
我如何才能让它为我工作?非常感谢任何帮助。
(
with m1 as
(
select --distinct
pfa.FacilityID
from PatientFormCompleted
)
select * from m1
left join other tables
)
union all
(
with m1archive as
(
select --distinct
pfa.FacilityID
from PatientFormArchive
)
select * from m1archive
left join other tables
)
答案 0 :(得分:2)
可能会关闭(投票,不投票,我自己BTW)但是在你编辑之后,你确实在这个问题上付出了一些努力,所以这里就是
您可以使用多个CTE
,但约束为
WITH
被写入请注意,您不应使用SELECT *
,但要具体说明您要返回的列。
SQL声明
with m1 as
(
select --distinct
pfa.FacilityID
from PatientFormCompleted
)
, m1archive as
(
select --distinct
pfa.FacilityID
from PatientFormArchive
)
select * from m1
left join other tables
union all
select * from m1archive
left join other tables
答案 1 :(得分:1)
几个选项:
联盟成为一个CTE:
with m1 as
(
select --distinct
pfa.FacilityID
from PatientFormCompleted
union all
select --distinct
pfa.FacilityID
from PatientFormArchive
)
select * from m1
left join other tables
使用多个CTE:
with m1 as
(
select --distinct
pfa.FacilityID
from PatientFormCompleted
)
,m1archive as
(
select --distinct
pfa.FacilityID
from PatientFormArchive
)
select * from m1
left join other tables
union all
select * from m1archive
left join other tables