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出来就有很多条记录
在连接之后再聚合,肯定是错的.
通常的做法是先各自聚合再连接. 当然,具体的写法要根具你的要求.