「Id」、「ParentId」、および「CreatedDate」を持つテーブルが 1 つあります。行が元の送信の場合、「ParentId」はありません。元の送信に編集が加えられると、NewRow."ParentId" = Original."Id" の新しい行が作成されます。それ以降の新しい編集はすべて、適切な「ParentId」を取得します。これにより、編集履歴を確認できます。
次にクエリです。最新のユニークなエントリをすべて取得するクエリをまとめました。例えば。3 つの固有の元のフォームがある場合。私は彼らの最新のリビジョン (最新の子) を見たいだけです。
これは私が使用しているクエリです:
SELECT DISTINCT A.*
FROM "dbo"."customercomplaint" AS A
RIGHT OUTER JOIN "dbo"."customercomplaint" AS B
ON B."parentid" != A."id"
WHERE A."parentid" IS NULL
AND A."id" IS NOT NULL
UNION
SELECT t1.*
FROM "dbo"."customercomplaint" t1
JOIN (SELECT "parentid" AS id,
Max("createddate") AS "CreatedDate"
FROM "dbo"."customercomplaint"
GROUP BY id) t2
ON t1."parentid" = t2.id
AND t1."createddate" = t2."createddate"
このクエリは少しずさんな感じがするので、より良い解決策を探したいと思います。さらに情報が必要な場合はお知らせください。あらゆるアドバイスに感謝します。