sql-server – SQL Server查询LEFT JOIN,SUM和GROUP BY和我被困
发布时间:2020-12-12 08:54:27 所属栏目:MsSql教程 来源:网络整理
导读:我正在殴打我的大脑反对这个 我有3个SQL Server 2005表 userawards: id,awardamount,userid,dateawarded,awardtypeid 用户: id,firstname,lastname awardtypes: id,title 所以如果奖项表有行 1,300.00,3,01-01-2011,12,125.00,01-05-2011,13,50.00,2,2 用
我正在殴打我的大脑反对这个
我有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列(可能不是你想要分组的) 在第一种情况下,我将奖品包含在选择中,但这意味着您还必须将其添加到组中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |