SELECT
allitems.caseEvidenceTreeID,
allitems.caseID,
allitems.effectiveFrom,
allitems.statusCode,
allitems.previousEvidenceID,
allitems.versionNo
INTO
:caseEvidenceTreeID,
:caseID,
:effectiveFrom,
:statusCode,
:previousEvidenceID,
:versionNo
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
) temp
) maxitems,
CaseEvidenceTree allitems
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
|