社員テーブル 部門テーブル
社員番号 所属 部門名 フロア
-------- ---- ------ ------
11001 総務 企画 1
11002 経理 総務 1
11003 営業 情報 2
11004 営業 営業 3
11005 情報 経理 2
11006 営業 法務 2
11008 企画 購買 2
12001 営業
12002 情報
所属する部門のフロアが2の社員数を出力する。
出力結果
社員数
------
3
create table 社員(
社員番号 char(5),
所属 char(4));
insert into 社員 values('11001','総務');
insert into 社員 values('11002','経理');
insert into 社員 values('11003','営業');
insert into 社員 values('11004','営業');
insert into 社員 values('11005','情報');
insert into 社員 values('11006','営業');
insert into 社員 values('11008','企画');
insert into 社員 values('12001','営業');
insert into 社員 values('12002','情報');
create table 部門(
部門名 char(4),
フロア number(1));
insert into 部門 values('企画',1);
insert into 部門 values('総務',1);
insert into 部門 values('情報',2);
insert into 部門 values('営業',3);
insert into 部門 values('経理',2);
insert into 部門 values('法務',2);
insert into 部門 values('購買',2);
commit;
--■■■結合させる方法■■■
select count(*) as 社員数
from 社員 a,部門 b
where a.所属=b.部門名
and b.フロア=2;
--■■■スカラーサブクエリを使う方法■■■
select count(*)
from 社員 a
where 2 = (select b.フロア
from 部門 b
where b.部門名 = a.所属);
結合させて、 フロアが2のレコード数を求めてます。