2015-04-05 56 views
0

我試圖從特定銷售代表處獲得客戶餘額的總和。這裏是我的代碼:通過另一個表中的值限制SQL Sum函數?

SELECT SUM(CusBalance) 
From Customer, Rep 
WHERE 
Rep.RepFName = 'Tim' 
AND 
Rep.RepLName = 'Sanchez'; 

但是,我只是得到每個客戶的餘額的總和。

我一定在犯一個簡單的錯誤,但我是SQL新手,有點卡住了。任何幫助,將不勝感激。順便說一句,我在訪問做這個2013年

+1

[join](http://en.wikipedia.org/wiki/Join_%28SQL%29)條件丟失。通常'Rep'中的一個字段應該與'Customer'中的一個字段匹配,但是如果沒有模式,我不能說明 – Diego 2015-04-05 00:48:04

+0

是的!謝謝。這固定了它。 – CrashRattigan 2015-04-05 00:55:29

回答

0

SELECT SUM(CusBalance) 從客戶,衆議員 WHERE Rep.RepFName = '添' 和 Rep.RepLName ='桑切斯 組由衆議員。 ID

0

我想你加入兩個表,如果我沒有記錯的話,嘗試一下加入,雖然語法可能在你使用的是SQL的類型不同,但嘗試:

SELECT C.SUM(CusBalance) 
From Customer as C, Rep as R 
WHERE 
C.primarykey=R.foreignkey 
AND 
R.RepFName = 'Tim' 
AND 
R.RepLName = 'Sanchez'; 
+0

是的,這是問題,謝謝大家的指導! – CrashRattigan 2015-04-05 01:01:28

2

你需要加入(連接)兩個表通過共享列(美國通常是主要/外部關鍵關係)。

運用現代明確的ANSI連接語法(而不是隱含的where子句中連接)查詢看起來像:

SELECT SUM(C.CusBalance) AS "Balance" 
FROM Customer C 
INNER JOIN Rep R ON R.RepNum = C.RepNum 
WHERE R.RepFName = 'Tim' 
    AND R.RepLName = 'Sanchez'; 
+0

是的,謝謝你的幫助! – CrashRattigan 2015-04-05 01:02:09

0

在在這種情況下,別人絆倒,它是由社區回答。我必須添加連接條件:

WHERE Customer.RepNum = Rep.RepNum 
+0

你不需要添加你自己的答案 - 對接受的答案的評論是好的。另外,您應該使用'JOIN'而不是'WHERE'子句來匹配兩個表。 – 2015-04-05 01:04:30

+0

@D Stanley在查詢處理過程中彼此等效。 INNER JOIN被認爲是顯式連接(更新的ANSI標準),WHERE被認爲是隱式連接。兩者都遵循相同的執行計劃參見[SO討論](http://stackoverflow.com/questions/121631/inner-join-vs-where) – Parfait 2015-04-05 01:31:59