거기에는 2 개의 테이블 주문&config_check.
create table orders (order_created date,
cus_no varchar2(20),
order_num number,
pay_type varchar2(30),
MFC date,
prod_no varchar2(15) );
create table config_check (check_type varchar2(100),
field_name varchar2(10),
field_value varchar2(15),
start_date date,
end_date date
);
insert into orders values ('20-NOV-21', 'GT-19Y67', 489, 'Credit Card', NULL, '1000');
insert into orders values ('07-OCT-21', 'NU-20D73', 567, 'Cash on Delivery', '14-OCT-21', '1001');
insert into orders values ('17-NOV-21', 'JP-16V81', 789, 'Cash on Delivery', NULL, '1101');
insert into orders values ('20-NOV-21', 'DZ-17T92', 837, 'Net Banking', '23-NOV-21', '1002');
insert into orders values ('16-SEP-21', 'RJ-18W107', 124, 'Cash on Delivery', NULL, '1002');
insert into orders values ('18-NOV-21', 'KI-19A39', 638, 'Cash on Delivery', NULL, '1000');
insert into orders values ('19-NOV-21', 'FT-20U86', 347, 'Net Banking', NULL, '1002');
insert into orders values ('19-NOV-21', 'FT-20U86', 347, 'Net Banking', NULL, '1110');
insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1000', '16-NOV-21', '30-NOV-21' );
insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1101', '08-SEP-21', '21-SEP-21' );
insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1002', '16-NOV-21', '30-NOV-21' );
insert into config_check VALUES ('Cust Bday Offer', 'CUST_NO', '845796', '13-AUG-21', '23-AUG-21' );
commit;
작 cus_no,order_num 순서가 잘못되었에서 3 개의 조건:
- pay_type 은'현금 납품에'때 이런 다음 의사 열 이라는 의견이 있어야의 메시지가'이 주를 위해 자격을 주지 않는 대구'
- 열 MFC 지 않은 null 이 경우 그 의사는 열 이라는 의견이 있어야의 메시지가'이해할 수 없 MFC'
- 는 경우 추가 제품에 추가에 나열되지 않은 config_check 테이블. 이 하나가 필요 일부는 설명이다. 그래서 나는 내 최선을 다할 것입니다 위의 테이블은 예를 설명합니다. 에 config_check 테이블에 있는 2PROD_NOs(1000 1002)에 대한 CHECK_TYPE'잘못된 명령인'시작 16-Nov-21. 오늘 날짜:21-NOV-2021. 그래서 사람만 2 행으로 간주 될 수 있는 오늘날의 날짜 사이에있는 시작과 끝 날짜입니다. 지금 주문 번호 347 는 제품 번호 1110 지에 config_check 테이블. 이러한 경우 의사 열 이라는 의견이 있어야지'비 나열된 항목으로'.
나는 1 2 조지 않을 얻을 수 있는 3 중 하나. 여기에 내려서 쿼리:
select o.CUS_NO, o.ORDER_NUM,
CASE
WHEN o.pay_type = 'Cash on Delivery' THEN 'This order does not qualify for Cod'
WHEN o.MFC IS NOT NULL THEN 'This order can not be an MFC'
END comments
from orders o INNER JOIN
( select * from config_check where check_type = 'Invalid Orders Check' and sysdate between start_date and end_date) c
ON (o.prod_no = c.field_value)
where o.ORDER_CREATED > c.start_date
AND (o.pay_type = 'Cash on Delivery' OR o.MFC IS NOT NULL);
위의 질의 결과를 제공합니다:
- AN-17T92 837 이해할 수 없 MFC
- KI-19A39 638 이 순서를 자격을 주지 않는 대구
는 경우가 있어야 할 때 다른 조항에 대한 제 3 조건과 동일해야에서 괄호 및 절에서 마지막입니다. 을 얻을 수 없는 제 3 조건에서 케이스 차단합니다. 할 수 있는 사람이 도와주세요 원하는 결과를 얻을 수? 원하는 출력해야한
- AN-17T92 837 이해할 수 없 MFC
- KI-19A39 638 이 순서를 자격을 주지 않는 대구
- FT-20U86 347 비 나열된 항목할 수 있는지 주문
을 찾는 데 도움 또는 점이 큰 것입니다. 을 읽어 주셔서 감사합니다 같은 긴 post.
편집:나는 데 문제가 붙여넣기 쿼리에서 출력 테이블 형식입니다. 내가 공유하는 출력에서 액세스 포인트가 필요합니다.