首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SELECT SUM语句的有关问题

2012-02-11 
SELECT SUM语句的问题SELECT (SUM(BT.[JiFen])/COUNT(BC.DESN)+SUM(BC.[JiFen])) AS [JiFen] FROM [BBSTit

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出来就有很多条记录

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

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

热点排行