|
本帖最后由 kigo6 于 2017-5-30 05:16 编辑
了解,其實9樓與11樓已經是我現階段的需求了
13樓的問題單純是我一時發想的問題,想說可以一起討論...
謝謝newkid提醒,未來針對問題的發問會更謹慎
=========================================
sql:
create table iteminfo (item_id varchar2(10),systype varchar2(10),dept_id varchar2(10));
insert into iteminfo values ('it_1','a','1234');
insert into iteminfo values ('it_2','a','2234');
insert into iteminfo values ('it_3','a','3456');
insert into iteminfo values ('it_4','a','1325');
insert into iteminfo values ('it_5','b','1234');
insert into iteminfo values ('it_6','b','2234');
insert into iteminfo values ('it_7','b','3456');
insert into iteminfo values ('it_8','b','1325');
insert into iteminfo values ('it_9','c','1234');
insert into iteminfo values ('it_10','c','2234');
insert into iteminfo values ('it_11','c','3456');
insert into iteminfo values ('it_12','c','1325');
commit;
SQL> select item_id from iteminfo where systype='a' and dept_id<>'1234'
2 minus
3 select item_id from iteminfo where systype='a' and dept_id='1234'
4 minus
5 select item_id from iteminfo where systype='b' and dept_id<>'1234'
6 minus
7 select item_id from iteminfo where systype='c' and dept_id<>'1234'
8 ;
ITEM_ID
----------
it_2
it_3
it_4
SQL> select item_id from iteminfo
2 where systype in ('a','b','c')
3 group by item_id
4 having count(case when systype='a' and dept_id='1234' then 1 else null end )=0
5 and count(case when systype='b' and dept_id<>'1234' then 1 else null end )=0
6 and count(case when systype='c' and dept_id<>'1234' then 1 else null end )=0
7 ;
ITEM_ID
----------
it_2
it_3
it_4
it_5
it_9
SQL> spool off
|
|