내가 같은 테이블 데이터가 :방법 PL/SQL에서 일부 경우에 최대 값을 얻을 수
작업 종류 작업 이름 작업 없음 YES_NO
----------- X- --------- 1 -------- N
A ----------- X ---------- 2 ----- --- N
A ----------- X ---------- 3 -------- Y
A -------- --- X ---------- 4 -------- Y
A ----------- X ---------- 5 -------- N
B ----------- Z ---------- 1 -------- N
B --- -------- Z ---------- 2 -------- N
B ----------- Z ---------- 3 -------- N
원하는 결과가 있어야한다 :
작업 종류 작업 이름 작업 없음 YES_NO
에게------------ X ---------- 4 ----- ---- Y
B ------------ Z ---------- 3 -------- N
하지만 성공하지 못합니다. 이 라인
케이스 :YES_NO 값이 'Y' 및 경우 YES_NO 값이 'Y' 각 작업 유형 및 작업 이름에 대한 어떠한 최대 작업을 얻을 수없는 경우 0
내가 그런 일을하려고 각 작업 유형에 대한 최대 task_no을 얻고 작업 이름 :
Select Job_Type,Job_Name,Yes_NO,max(Task No)
From Table
where Yes_NO='Y'
Group By Job_Type,Job_Name,Yes_NO
UNION
Select Job_Type,Job_Name,Yes_NO,max(Task No)
From Table
where not exists(Select 1
From Table
where Yes_NO='Y')
Group By Job_Type,Job_Name,Yes_NO
내 잘못이 있습니까? 아니면 더 쉬운 방법이 있습니까?
고마워요.
안녕하세요 론, 고용 _ 값이된다 'N'은 필터링은't2.Job_Type이 null' 라인이하는 무엇 – LeoMessi
입니다 모든 Job_Type 및 Job_Name 레코드에는 'Yes_NO ='Y ''레코드가 하나 있습니다. 다음은 귀하의 데이터 세트로 결과를 보여주는 SQL Fiddle입니다 : http://www.sqlfiddle.com/#!2/98c395/4 –
예. 나는 그것을 놓칩니다. 감사합니다. – LeoMessi