我正在殴打我的大脑反对这个
我有3个sql Server 2005表
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列(可能不是你想要分组的)
在第一种情况下,我将奖品包含在选择中,但这意味着您还必须将其添加到组中.