2017-10-10 3 views
0

다음 직원 데이터 테이블이 있습니다. 다음과 같은 로직을 기반으로 선택 쿼리를 만들려고합니다 :상태가 'X'이면 상태 = 'X'인 레코드 만 표시 else (상태 = 'X'가 아니고 상태 = 공백)이면 모두 표시 recordsSQL에 Include-Exclude Logic 사용

결과를 얻기 위해 가능한 모든 조합을 시도했지만 실패했습니다. 아무도이 수행하는 방법을 제안하시기 바랍니다 수 있습니까?

EmpNo | Name |Status | Age 
================================ 
11  | Aron | A  | 25 
22  | Barry | X  | 26 
33  | Carol | A  | 27 
44  | Danny | I  | 28 
55  | Emmy | X  | 29 
66  | Fanny | I  | 30 
77  | Garry | A  | 25 
88  | Harry | X  | 26 
+1

이 문제는 COBOL과 관련이 없습니다. – SaggingRufus

+0

에 오신 것을 환영합니다. [도움말 페이지] (https://stackoverflow.com/help), 특히 [여기에 어떤 항목을 물어볼 수 있습니까?] (https://stackoverflow.com/help/) 섹션을 읽어보십시오. on-topic) 및 [[어떤 유형의 질문을하지 않아야합니까?]] (https://stackoverflow.com/help/dont-ask)를 참조하십시오. 또한 [둘러보기] (https://stackoverflow.com/tour)를 읽고 [좋은 질문을하는 방법] (https://stackoverflow.com/help/how-to-ask)을 읽어보십시오. 마지막으로 [Minimal, Complete, Verifiable Example] (https://stackoverflow.com/help/mcve)을 만드는 방법을 배우십시오. – cschneid

+0

@saggingrufus ...이 쿼리는 COBOL-DB2 처리기/모듈에서 사용할 것입니다. 거기에 태그가 언급되었습니다. :) –

답변

0

원하는 작업을 단일 쿼리로 수행 할 수 없습니다. Where 조건에 따라 여러 개의 선택 쿼리를 작성해야합니다.

Cobol에서 입력을 작업 저장 영역 호스트 변수 WS-AGE 및 WS-STATUS로 이동하십시오. 그런 다음 검색어를 다음과 같이 작성하십시오.

If Age > Zeroes and Status > Spaces 
    Select EmpNo, Name, Age, Status 
     into :host-variable1, :hv2, :hv3, :hv4 
     from Table 
     Where Age=:WS-AGE 
      and Status=:WS-STATUS 
Else 
    If Age > Zeroes 
     Select EmpNo, Name, Age, Status 
     into :host-variable1, :hv2, :hv3, :hv4 
     from Table 
     Where Age=:WS-AGE 
    Else 
     Select EmpNo, Name, Age, Status 
     into :host-variable1, :hv2, :hv3, :hv4 
     from Table 
    End-if 
End-if