존재 화면 필터에만 존재하며 프로 시저에서 처리됩니다. 직원이 활동에 할당되었지만 회사와 계약이없는 경우 계약의 특수 유형이 반환됩니다 (NVL). 직원은 계약이 없으므로 표에 없습니다 VM_CONTRATO
. 이런 식으로 필터링 할 때이 조건이 충족되지 않습니다.오라클 조건은 내가 절차상의 <code>EXISTS</code> 조건을 수행 할
이 경우 특수 유형을 어떻게 고려합니까? 나는 몇 가지 방법을 시도해 봤지만 일하지 않았습니다. 모든 팁이나 권장 사항?
직원이 할당 된 ACTIVITIES
에 대해 선택한 필터 중 계약 유형이 직원에게 있는지 여부를 확인하려면 VM_CONTRATO
을 참조하십시오.
예 :
표 활동 :
Id EmployeeId NameActivity
-- ---------- -----------
1 Employee1 Act1
2 Employee2 Act2
3 Employee3 Act3
표 VM_CONTRACT :
Id EmployeeId TypeContract
-- ---------- ------------
1 Employee1 Type 1
2 Employee2 Type 2
난의 특별한 유형으로 필터링하면 세 가지 활동, 반환되는 활동을 조회 할 경우 활동 인 경우 employee3이 계속 반환되어야하지만 현재로서는 그렇지 않습니다.
편집 1 : 나는 분명 아니었다면
죄송합니다, 여기에 몇 가지 자세한 내용은 다음과 같습니다.
이것은 프로 시저에서 생성 된 쿼리 구조의 템플릿입니다. 주석 처리 된 코드는 "본드 (Bond)"필터 (사용자가 보낸 매개 변수)를 수행하는 데 사용 된 양식입니다. 그러나 전송 된 매개 변수를 기반으로 전체 결과를 필터링하지 않도록 필터의 컨텍스트를 변경하는 것이 아니라 직원 또는 직원이 "본드"를 가지고 있는지 식별하여 모든 할당을 반환해야합니다. 직원은 설문 조사 기간에 여러 유형의 링크가있을 수 있습니다.
EXISTS 코드가 추가되었지만 "SPECIAL TYPE"필터 유형에는 작동하지 않습니다. 이 경우 직원이 계약을하지 않고 서비스를 제공하고 있기 때문에 (그는 활동에 배정 됨)
기존 필터와 "특수 유형"필터를 모두 충족하는 단일 조건을 만드는 방법이 필요합니다 .
SELECT FILTER.*
FROM (
SELECT NVL((SELECT TypeContract FROM VW_CONTRACT WHERE "EmployeeId" = CONTRACT_ALOC."EmployeeId" AND ROWNUM = 1), 'SPECIAL TYPE') as "Bond",
CONTRACT_ALOC.*
FROM (SELECT ACTIVITY.*
FROM
(SELECT *
FROM OTHER TABLES
WHERE OTHER CONDITIONS
union all
SELECT *
FROM (
SELECT *
FROM OTHER TABLES 2
WHERE OTHER CONDITIONS 2
) ACTIVITY_IRHP
WHERE OTHER CONDITIONS 3
) ACTIVITY
WHERE TO_DATE('01/09/2000', 'DD/MM/RRRR') BETWEEN ACTIVITY."InicialDate" AND ACTIVITY."FinalDate"
AND EXISTS (SELECT NVL(TypeContract, 'SPECIAL TYPE') FROM VW_CONTRACT WHERE "EmployeeId" = ACTIVITY."EmployeeId" AND UPPER(TypeContract) IN ('SPECIAL TYPE') AND ROWNUM = 1)
AND ACTIVITY."EmployeeId" IN (3263)
) CONTRACT_ALOC
ORDER BY CONTRACT_ALOC."EmployeeName") FILTER;
--WHERE LOWER("Bond") IN ('SPECIAL TYPE');
"나는 몇 가지 방법을 시도했지만 효과가 없습니다."라고 말합니다. 당신이 시도한 것을 보여주십시오. 그리고 "절차에 따라 치료 받는다"는 것은 무엇을 의미합니까? 자세히 설명해주십시오. –
검색중인 값이 포함되어 있지 않은보기를 쿼리하여 데이터를 필터링하고 싶습니까? Fnord. 당신은 당신이 달성하고자하는 것을 더 자세하게 설명 할 필요가 있습니다. – APC
죄송합니다. 좀 더 자세한 정보를 추가했습니다. 고맙습니다. – cassiom