0
私は、データベースの2つのテーブルのセットから引き出すTSQLクエリを作成しました。共通テーブル式のテーブルは、メインクエリのテーブルとは異なります。私はMRNに参加しており、両方のテーブルセットのアカウントを含む最終結果が必要です。私は、この目的のために、次のクエリを書いている:メインクエリ出力にCTEの結果を追加するにはどうすればよいですか?
with cteHosp as(
select Distinct p.EncounterNumber, p.MRN, p.AdmitAge
from HospitalPatients p
inner join Eligibility e on p.MRN = e.MRN
inner join HospChgDtl c on p.pt_id = c.pt_id
inner join HospitalDiagnoses d on p.pt_id = d.pt_id
where p.AdmitAge >=12
and d.dx_cd in ('G89.4','R52.1','R52.2','Z00.129')
)
Select Distinct a.AccountNo, a.dob, DATEDIFF(yy, a.dob, GETDATE()) as Age
from RHCCPTDetail c
inner join RHCAppointments a on c.ClaimID = a.ClaimID
inner join Eligibility e on c.hl7Id = e.MRN
full outer join cteHosp on e.MRN = cteHosp.MRN
where DATEDIFF(yy, a.dob, getdate()) >= 12
and left(c.PriDiag,7) in ('G89.4','R52.1','R52.2', 'Z00.129')
or (
DATEDIFF(yy, a.dob, getdate()) >= 12
and LEFT(c.DiagCode2,7) in ('G89.4','R52.1','R52.2','Z00.129')
)
or (
DATEDIFF(yy, a.dob, getdate()) >= 12
and LEFT(c.DiagCode3,7) in ('G89.4','R52.1','R52.2','Z00.129')
)
or (
DATEDIFF(yy, a.dob, getdate()) >= 12
and LEFT(c.DiagCode4,7) in ('G89.4','R52.1','R52.2','Z00.129')
)
order by AccountNo
私は結果の1セットにまとめて共通テーブル式とメイン・クエリの両方の出力をマージするにはどうすればよいですか?
マージとはどういう意味ですか?あなたの 'cte'と最後の' select'ステートメントは異なる列を持っています。最後の出力に 'cte'カラムを追加するだけですか?そうであれば、別のテーブルと同じように参照してください。 – iamdave
CTEの結果をメインのクエリ結果にマージしようとしています。列の名前を同じにする必要がありますか?もしそうなら、私はどのようにマージ構文を構造化するのですか? – SidC
もう一度、マージしたらどういう意味ですか?あなたの質問に希望の出力を加えてください。私たちは読者ではありません。 – iamdave