2013-08-06 21 views
-2

我有三個表t1,t2,t3。
T1具有一個主鍵p1
T2具有參考表T1的主鍵L1和外鍵p1 012參考表T2,T3具有主鍵W1和外鍵L1。sql sum命令如果很多表是相關的

對於每個P1值,在表T2中對應地可能有很多L1值,同時對於每個L1值,表T3中可能有很多W1值。假設在表T3中有一列稱爲X的列,我需要表T3中相應的L1值的x值的總和。

      
    ---------  ---------  --------- 
    | t1 |  | t2 |  | t3 | 
    ---------  ---------  --------- 
    |p1 (PK)| 1 * |L1 (PK)| 1 * |W1 (PK)| 
    |  | ---- |p1 (FK)| ---- |L1 (FK)| 
    |  | (p1) |  | (L1) |X  | 
    ---------  ---------  --------- 
+2

你的問題是? – Kermit

+0

它看起來像你需要的一切是在表T3(列'L1'和'X')根據你的問題...請澄清... –

+0

我已經添加了我認爲是正確的佈局表中窮人男人的ER符號。 – Greg

回答

0

想象有一個稱爲X在表T3的列,我需要在表T3對應的L1值x的值的總和 。

這得到X的總和T3,其中FK L1是在T2:

​​
1

您的結構不完全清楚,但其中的一個可能讓你去:

SELECT SUM(T3.x) 
FROM T1 
INNER JOIN T2 on T1.P1 = T2.P1 
INNER JOIN T3 ON T2.L1 = T3.L1 

SELECT SUM(x) 
FROM T3 
WHERE L1 IN 
(SELECT L1 FROM T2 INNER JOIN T1 ON T2.P1 = T1.P1) 
+0

是的,它的工作..感謝您的幫助 – user2657960