--3.8 a 找出银行中所有有账户但无贷款的客户
select distinct customer_name from depositor where customer_name not in(
select customer_name from borrower
)
--下面这个自动去掉了重复值的情况 不需要加distinct
select customer_name from depositor
except
select customer_name from borrower
--3.8 b 找出与“Smith”居住在同一个城市、同一个街道的所有客户的名字
select customer_name from customer where customer_city in(
select customer_city from customer where customer_name='Smith'
) and customer_street in(
select customer_street from customer where customer_name='Smith'
)
--3.8 c 找出所有支行的名称,在这些支行中都有居住在“Harrion”的客户所开设的账户
select distinct branch_name from account join depositor on(account.account_number=depositor.account_number)
where customer_name in(
select customer.customer_name from customer
where customer_city='Harrison'
)
select distinct branch_name from customer join depositor on (customer.customer_name=depositor.customer_name and customer.customer_city='Harrison') join
account as a on (a.account_number=depositor.account_number)
--3.15a 找出在“Brooklyn”的所有支行都有账户的所有客户
select customer_name from customer where not exists(
select branch_name from branch where branch_city='Brooklyn'
except
select branch_name from account join depositor on(account.account_number=depositor.account_number)
where depositor.customer_name=customer.customer_name
)
--3.15b 找出银行的所有贷款额的总和
select sum(amount) as sum_amount from loan
--3.15c 找出总资产至少比位于Brooklyn的某一家支行要多的所有支行的名字
select branch_name from branch where assets>=all( --这里千万别忘了写all 表示单值比较
select assets from branch where branch_city='Brooklyn'
)