嗨,我是一個初學SQL並有問題。SQL多表加入SUM
我有以下5個表:
科(名稱,市), 員工(EMPNO,名稱,分公司), 客戶(CustNo,名稱,EMPNO), AccountDetails(ACCNO,CustNo) 帳戶(ACCNO,平衡)
僱員連接到一個單一的通過員工分支屬性進行分支。 客戶通過EmpNo屬性加入到單個員工。
每個客戶可以有多個帳戶,每個帳戶可以有幾個客戶(所以允許共享帳戶) - 因此我做了一個交集實體(AccountDetails)。
我想總結每個分支的總餘額 - 我得到的問題是我的總數是雙重計數,即許多客戶可以共享一個帳戶我的代碼將統計每個客戶帳戶,即使它指的是相同的AccNo - 所以AccNo和伴隨的餘額會一遍又一遍地計算,具體取決於有多少客戶共享一個賬戶,所以如果兩個客戶共享一個賬戶,那麼餘額將被計算兩次。
select sum(a.balance), a.accno, b.name
from branch b, bankemployee e, customer c, accountdetails d, account a
where b.name = e.branch
and e.empno = c.empno
and c.custno = d.custno
and d.accno = a.accno
group by a.accno, b.name
我已經使用DISTINCT例如d.accno IN(從accountDetails選擇不同的accno)但無濟於事,它仍然是雙重計數。
我在帳戶表中放了一個分支屬性,但我不想這樣做,如果可能的話。
任何幫助,非常感謝。
謝謝。
你爲什麼要加入到客戶,accountdetails和bankemployee完全?你似乎沒有使用它們的列。 – Aushin 2013-04-30 13:40:23
當多個客戶共享一個擁有不同分支機構員工的賬戶時,應該做什麼?您的數據模型存在一些問題。值得注意的是,客戶直接與銀行員工聯繫似乎很奇怪。 – 2013-04-30 13:58:26
@Aushin你能說一說你的意思嗎?謝謝 – monster 2013-04-30 14:25:21