Saya memiliki skema tabel relasional berikut:

Customer(customer_id, customer_name, customer_city)
Branch(branch_id, branch_name, branch_city)
Account(account_id, balance, customer_id, branch_id)

Nama pertanyaan setiap nasabah yang memiliki rekening di cabang minimal dua kota yang berbeda. Ini berfungsi untuk saya permintaan berikutnya tetapi hanya jika saya membuat tampilan terlebih dahulu. Apakah ada pilihan lain untuk melakukannya bersama?

Solusi saya yang berfungsi:

Create view Cust as select c.Customer_Name, c.customer_ID, b.branch_name, b.branch_city from Customer as c inner Join Account as a on c.customer_ID=a.customer_ID join Branch as b on b.branch_id=a.branch_id
SELECT * FROM Cust as c inner join Cust as c1 on c.CustomerID=c1.CustomerID and c.branch_city <> c1.branch_city
0
Zoe 19 April 2020, 23:09

1 menjawab

Jawaban Terbaik

Berikut adalah salah satu opsi menggunakan exists dengan kueri agregat

select c.*
from customer c
where exists (
    select 1
    from account a 
    inner join branch b on b.branch_id = a.branch_id
    where a.customer_id = c.customer_id
    group by c.customer_id
    having min(b.branch_city) <> max(b.branch_city)
)
0
GMB 19 April 2020, 20:17