2015-04-05 54 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