三表连接查询 其中有sum求和,取总和最高的值,去除重复
现有3表
表A
GiftID GiftName GiftUnion
129 啤酒 瓶
130 棒棒糖 个
131 歌神 次
132 歌后 次
133 气球 个
134 巧克力 盒
135 欢迎 次
表B
ID UserIDTo GiftID GiftNum
3017 111 120 1 100
3018 12346 120 1 100
3019 600030 120 1 100
3020 600096 120 1 100
3021 4444 120 100
3022 4567 120 100
3023 518 120 100
3024 1616 120 100
3025 2001 120 1 100
3026 123123 120 1 100
3027 123777 120 1 100
表C
UserID NickName
2003 2003
2004 2004
2005 2005
2006 2006
2007 2007
2008 2008
2009 2009
2010 2010
其中A.giftid=B.giftid, B.useridto=C.userid
自己乱写两个sql语句
select top 8 sum(ug.GiftNum)as liwu,u.NickName,g.GiftName from UserGift as ug,Users as u,Gift as g where ug.UserIDFrom=u.UserID and ug.GiftID
in (208,206,131,132,500,505,308,307) and ug.GiftID=g.GiftID group by u.NickName,g.GiftName order by liwu desc
得到结果
liwu NickName GiftName
74841 xx 圣诞树
62884 xx 圣诞树
26853 xx 圣诞袜
19632 xx 圣诞袜
13141 xx 圣诞树
9999 xx 歌后
5527 xx 圣诞树
4539 xx 亲嘴
其中giftNum是数量、NickName是姓名、GiftName礼物名称、GiftID礼物ID
红色208,206,131,132,500,505,308,307 是指定礼物ID 我只要这8种礼物的查询结果
如上结果显示都是重复行,不是我想要的 8种不同礼物
------解决方案--------------------试试:
SELECT TOP 8
SUM(ug.GiftNum) AS liwu ,
u.NickName ,
&nb