アプリケーションに監査証跡を実装しています。私はこれに従い、これにより、監査のみが必要なテーブルである履歴テーブルが作成されました。
患者情報を保存する次のテーブルがあります。
TenantIdは、マルチテナント アプリケーションであるため、各テナント データを表します。
Person
とPatient
テーブル
人
Id、TenantId、FirstName、LastName、DOB、Mobile、Eメール、AddedBy、UpdatedBy、IsDeleted
忍耐強い
Id、PatientIDentifier、IsOP、CanSendSMS、AddedBy、UpdatedBy、IsDeleted
また別のテーブル
予定
Id、PatientId、AppointmentDate、DoctorId、Price、AddedBy、UpdatedBy
監査履歴表の構造
人物歴
AuditId、Id、FirstName、LastName、DOB、AddedBy、UpdatedBy、AuditUserId、AuditDate、Action
ここでAction
表すA(ADD)/U(update)/D(delete)
同じ構造が作成されましたPatient, Appointment
これで、追加/削除/更新が発生するたびに履歴テーブルに挿入するトリガーが得られました。
これで、監査履歴テーブルで使用できるデータを取得できました。
2 つの要件のクエリを作成する必要があります。
特定の患者のすべてのレコードを取得します。を使用して、PatientHostory、AppointmentHistory、PersonHistory からすべてのレコードを取得する必要があり
PatientId
ます。特定の ID に対して同じテーブルからより多くのレコードを取得する SQL を作成するにはどうすればよいですか?UNION or JOIN
?からすべてのレコードを取得する必要があります
all the HistoryTable for the supplied AuditUser Id
。
これに対するクエリを作成するにはどうすればよいですか?