SQL*Plus, 데이터 연결 방법 – Union, Group by
품명 | 항목 | 전월 | 합계 |
---|---|---|---|
APERTUR | 검사 | 생략 | 생략 |
합격 | 생략 | 생략 | |
율(%) | 생략 | 생략 | |
G3 BOOT | 검사 | 생략 | 생략 |
합격 | 생략 | 생략 | |
율(%) | 생략 | 생략 | |
G5 CAP | 검사 | 생략 | 생략 |
합격 | 생략 | 생략 | |
율(%) | 생략 | 생략 | |
HDD CON | 검사 | 생략 | 생략 |
합격 | 생략 | 생략 | |
율(%) | 생략 | 생략 |
SELECT 품목 , Decode(NO,1,'검사',2,'합격','율(%)') , Sum(decode(주,0,cnt)) , Decode(no,3, round(sum(분자)*100/sum(분모),3) , sum(분자)+sum(분모)) , Sum(decode(주,1,건수)) , Sum(decode(주,2,건수)) , Sum(decode(주,3,건수)) , Sum(decode(주,4,건수)) , Sum(decode(주,5,건수)) , Sum(decode(주,6,건수)) FROM ( SELECT 품목 , NO , 주 , Decode(NO, 3, round(sum(합격수)*100/sum(검사수),3) , sum(합격수) + sum(검사수)) 건수 , Sum(decode(주, 0,null, 검사수)) 분모 , Sum(decode(주, 0,null, 합격수)) 분자 FROM ( SELECT 품목 , Decode(to_char(검사일,'yyyymm'), '199712', '0', ceil((to_char(검사일,'dd')+to_char(trunc(검사일,'mm'),'d')-1)/7)) 주 , Count(*) 검사수 , 0 합격수 , 1 SW FROM 품질검사 WHERE 공정 = 'PRESS' and 검사일 between '01-DEC-97' and '31-JAN-98' GROUP BY 품목,Decode(to_char(검사일,'yyyymm'), '199712', '0', ceil((to_char(검사일,'dd')+to_char(trunc(검사일,'mm'),'d')-1)/7)) UNION ALL SELECT 품목 , Decode(to_char(검사일,'yyyymm'), '199712', '0', ceil((to_char(검사일,'dd')+to_char(trunc(검사일,'mm'),'d')-1)/7)) 주 , 0 검사수 , Count(합격항목수) 합격수 , 2 SW FROM ( SELECT 품목 , 검사일 , Count(*) 검사항목수 , Sum(decode(LEAST(grade,'C'),'C',1)) 합격항목수 FROM 검사결과 WHERE 공정 = 'PRESS' and 검사일 between '01-DEC-97' and '31-JAN-98' GROUP BY 품목, 공정, 검사일, 일련번호 ) WHERE (검사항목수 = 합격항목수) or (합격항목수 is null and rownum = 1) GROUP BY 품목, Decode(to_char(검사일,'yyyymm'), '199712', '0', ceil((to_char(검사일,'dd')+to_char(trunc(검사일,'mm'),'d')-1) / 7)) ) x, COPY_T y WHERE NO in (SW, 3) and NO <= 3 GROUP BY 품목, NO, 주 ) GROUP BY 품목, NO;
원문 출처
Encore – 대용량 데이터베이스