微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – SQL Server查询LEFT JOIN,SUM和GROUP BY和我被困!

我正在殴打我的大脑反对这个

我有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列(可能不是你想要分组的)

在第一种情况下,我将奖品包含在选择中,但这意味着您还必须将其添加到组中.

原文地址:https://www.jb51.cc/mssql/74968.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐