我正在殴打我的大脑反对这个
userawards:
id,awardamount,userid,dateawarded,awardtypeid
用户:
id,firstname,lastname
awardtypes:
id,title
所以如果奖项表有行
1,300.00,3,01-01-2011,1 2,125.00,01-05-2011,1 3,50.00,2,2
用户表行
1,john,smith 2,mark,smith 3,bob,smith
奖励类型
1,cash 2,prize
我希望输出看起来像这样
bob smith,425.00,cash mark smith,50,prize
等等
用户可以获得多个奖项,结果需要显示唯一用户,但总奖金额.另外还需要有2个连接,一个用户可以在用户表中获取用户的名字/最后一个以及授予类型标题.
所以我的查询看起来像这样(我知道它不起作用)
SELECT id,awardtypeid,SUM(awardamount) FROM awards a LEFT JOIN userinfo ui ON ui.userid = a,userid LEFT JOIN awardtypes ON awardtypesid = a.awardtypeid GROUP BY userid
这甚至可能吗
解决方法
你可能想要
SELECT userid,SUM(awardamount) FROM awards a LEFT JOIN userinfo ui ON ui.userid = a.userid LEFT JOIN awardtypes ON awardtypesid = a.awardtypeid GROUP BY userid,awardtypeid
要么
SELECT userid,SUM(awardamount) FROM awards a LEFT JOIN userinfo ui ON ui.userid = a.userid LEFT JOIN awardtypes ON awardtypesid = a.awardtypeid GROUP BY userid
这会删除id列(可能不是你想要分组的)
在第一种情况下,我将奖品包含在选择中,但这意味着您还必须将其添加到组中.
原文地址:https://www.jb51.cc/mssql/74968.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。