日期:2014-05-18  浏览次数:20463 次

SELECT SUM语句的问题
SELECT (SUM(BT.[JiFen])/COUNT(BC.DESN)+SUM(BC.[JiFen])) AS [JiFen] FROM [BBSTitle] AS BT INNER JOIN [BBSCONTENT] AS BC ON BC.[UserName] = BT.[UserName] WHERE (BC.[UserName] = @UserName)

这句话球出的和是错的,例如BT的表:
JIFEN Name
0.03 aa
0.03 aa
0.03 aa

BC的表是:
JIFEN   Name
0.005  aa


我要把这两个表的JIFEN加起来,但用上面语句却得出0.105 ,结果是错的,那语句应怎么写?

------解决方案--------------------
你给的示例数据跟你语句中需要的字段不符合(缺少某些关健字段)

所以我没法把语句给你.

我只能告诉你

inner join 不是一对一,可能一对多,也可能多对多,所以连接后的结果行总是不小于被连接的两(或多个)个表中行数最大的一个表的行数.

比如
ta
id
1
1
1
2
2
tb
id
1
1
2
2
2
2
那么inner join出来就有很多条记录

在连接之后再聚合,肯定是错的.

通常的做法是先各自聚合再连接. 当然,具体的写法要根具你的要求.