SQL 查询问题,聚合函数;SQL Server数据库

在A表中使用查询selectUserID,SUM(Num)asSumfromAgroupbyUserID;只能显示这两列,我想连通着将B表中对应着UserID的UserN... 在A表中使用查询select UserID,SUM(Num) as Sum from A group by UserID;只能显示这两列,我想连通着将B表中对应着UserID的 UserName、Tel等信息一同显示出来。 展开
 我来答
流浪云风
2012-11-02 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:938万
展开全部
语句改成这样就可以了。
select A.UserID, B.UserName, B.Tel, SUM(A.Num) as Sum from A, B where A.UserID=B.UserID group by A.UserID, B.UserName, B.Tel;
追问
这样如果显示的列比较多是比较麻烦啊,我记得好像有个并联,可以横向扩展列,不是UNION。
追答
这个没有办法的,因为你使用了聚合函数sum,这个时候需要查询项中包含其他未使用聚合函数的列,就需要使用group by 分组,那么就必须逐个列写出。

使用union是将两个查询的结果集合并。并不是增加列。
szm341
2012-11-02 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5181万
展开全部
select a.userid,a.sum,b.username,b.tel

(select UserID,SUM(Num) as Sum from A group by UserID)a
inner join B as b on a.userid=b.userid
追问
这才是正解啊,可惜已经确认答案了。再问一下select SUM(GoodsPrice*Num)  as TotalPrice, TotalPrice*5% as Deduct from 表;这个有错误吗,不能这样写吗
追答
当然有错误,totalprice是你的别名列,并不是表的原生列
select列的优先级是并列的,也就是说别名列不能用在select列中出现
别名列的优先级只高于order by
只能select sum() as totalprice,sum()*5% as deduct from table
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式