SELECT
allitems.caseEvidenceTreeID,
allitems.caseID,
allitems.effectiveFrom,
allitems.statusCode,
allitems.previousEvidenceID,
allitems.versionNo,
ceg.caseEvidenceGroupID,
ceg.evidenceGroupInfoID,
ceg.versionNo
INTO
:caseEvidenceTreeID,
:caseID,
:effectiveFrom,
:statusCode,
:previousEvidenceID,
:versionNo,
:caseEvidenceGroupID,
:evidenceGroupInfoID,
:caseEvidenceGroupVersionNo
FROM
(
SELECT
MAX(effectiveFrom) AS maxeffectivefrom
FROM
(
SELECT
*
FROM
CaseEvidenceTree
WHERE effectiveFrom IS NOT NULL
AND effectiveFrom < :effectiveFrom
AND caseID = :caseID
AND statusCode = :statusCode
UNION
SELECT
*
FROM
CaseEvidenceTree
WHERE effectiveFrom IS NULL
AND caseID = :caseID
AND statusCode = :statusCode
) c1,
CaseEvidenceGroup ceg
WHERE ceg.evidenceGroupNameCode = :evidenceGroupNameCode
AND ceg.caseEvidenceTreeID = c1.caseEvidenceTreeID
) maxitems,
CaseEvidenceTree allitems,
CaseEvidenceGroup ceg
WHERE
(
(
maxeffectivefrom IS NOT NULL
AND maxeffectivefrom = allitems.effectiveFrom
)
OR
(
maxeffectivefrom IS NULL
AND allitems.effectiveFrom IS NULL
)
)
AND allitems.caseID = :caseID
AND allitems.statusCode = :statusCode
AND ceg.caseEvidenceTreeID = allitems.caseEvidenceTreeID
AND ceg.evidenceGroupNameCode = :evidenceGroupNameCode
|