基於銀行數據庫查找練習

--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'
)
          

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章