我试图从特定销售代表处获得客户余额的总和。这里是我的代码:通过另一个表中的值限制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