注册 登录
编程论坛 SQL Server论坛

小生在此谢过~~遇到个问题实在是解决不了~事情是这么这么这么滴~

kanglehao 发布于 2013-12-26 12:52, 585 次点击
我这有两个表这里说为a和b,我需要做的是统计某天所有商户的交易情况,只根据b表的话没问题,查询语句如下~这样完全没有问题

select b.商户编码,b.商户名称,sum(convert(money,交易金额)),sum(convert(money,收益))
   from b  WHERE 交易状态='0'
   AND 清算日期 between '20131224' AND '20131224'
   group by b.商户编码,b.商户名称
   order by sum(convert(money,收益)) desc

然后a表中有商户的发展人信息,a表呢商户编码不唯一,相同的商户编码可能出现多条记录但发展人唯一不会错的 我现在要在上面的上面的查询加上发展人信息
我就写了如下查询


select b.商户编码,b.商户名称,a.发展人,sum(convert(money,交易金额)),sum(convert(money,收益))
   from a JOIN  b ON a.商户编码 = b.商户编码
   and b.交易状态='0'
   and 清算日期 between '20131224' AND '20131224'
   group by b.商户编码,b.商户名称,a.发展人
   order by sum(convert(money,收益)) desc

然后结果就错了 sum出来的金额要大很多,完全是错误的,请高手帮忙看看问题出在哪啊!谢谢~~谢谢~~真的~谢谢~~
3 回复
#2
kanglehao2013-12-26 12:54
新手实在没分~大哥们海涵~下次有分一定补偿~
#3
qw11617485792013-12-27 18:01
from a RIGHT JOIN  b这个试试
不行的话你可以试试DISTINCT将编号和发展人查出来

[ 本帖最后由 qw1161748579 于 2013-12-27 18:05 编辑 ]
#4
kanglehao2013-12-31 13:10
回复 3楼 qw1161748579
嗯 谢谢啊 问题我自己摸索解决了 right jion之前试过也不行 先sum然后再jion 然后加个distinct就出来了 ,应该就是你说的第二种方法一个道理
1