我試圖從特定銷售代表處獲得客戶餘額的總和。這裏是我的代碼:通過另一個表中的值限制SQL Sum函數?
SELECT SUM(CusBalance)
From Customer, Rep
WHERE
Rep.RepFName = 'Tim'
AND
Rep.RepLName = 'Sanchez';
但是,我只是得到每個客戶的餘額的總和。
我一定在犯一個簡單的錯誤,但我是SQL新手,有點卡住了。任何幫助,將不勝感激。順便說一句,我在訪問做這個2013年
我試圖從特定銷售代表處獲得客戶餘額的總和。這裏是我的代碼:通過另一個表中的值限制SQL Sum函數?
SELECT SUM(CusBalance)
From Customer, Rep
WHERE
Rep.RepFName = 'Tim'
AND
Rep.RepLName = 'Sanchez';
但是,我只是得到每個客戶的餘額的總和。
我一定在犯一個簡單的錯誤,但我是SQL新手,有點卡住了。任何幫助,將不勝感激。順便說一句,我在訪問做這個2013年
SELECT SUM(CusBalance) 從客戶,衆議員 WHERE Rep.RepFName = '添' 和 Rep.RepLName ='桑切斯 組由衆議員。 ID
我想你加入兩個表,如果我沒有記錯的話,嘗試一下加入,雖然語法可能在你使用的是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';
是的,這是問題,謝謝大家的指導! – CrashRattigan 2015-04-05 01:01:28
你需要加入(連接)兩個表通過共享列(美國通常是主要/外部關鍵關係)。
運用現代明確的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';
是的,謝謝你的幫助! – CrashRattigan 2015-04-05 01:02:09
在在這種情況下,別人絆倒,它是由社區回答。我必須添加連接條件:
WHERE Customer.RepNum = Rep.RepNum
你不需要添加你自己的答案 - 對接受的答案的評論是好的。另外,您應該使用'JOIN'而不是'WHERE'子句來匹配兩個表。 – 2015-04-05 01:04:30
@D Stanley在查詢處理過程中彼此等效。 INNER JOIN被認爲是顯式連接(更新的ANSI標準),WHERE被認爲是隱式連接。兩者都遵循相同的執行計劃參見[SO討論](http://stackoverflow.com/questions/121631/inner-join-vs-where) – Parfait 2015-04-05 01:31:59
[join](http://en.wikipedia.org/wiki/Join_%28SQL%29)條件丟失。通常'Rep'中的一個字段應該與'Customer'中的一個字段匹配,但是如果沒有模式,我不能說明 – Diego 2015-04-05 00:48:04
是的!謝謝。這固定了它。 – CrashRattigan 2015-04-05 00:55:29