关于GROUP BY的应用

前面收藏了别人的SQL语句操作,可是没有实战,也未知学的如何

正好今天有个事需要做一下

(sql server 2000)

三个表:stuInf,sType,sinInf分别为学生信息表,类型表,信息录入表

stuInf(ID,stuID,stuName,stuFirst,stuSecond)

sType(ID,stname,stRecord)

sinInf(ID,stuID,stID,addDate)

现在想查  所有的学生信息,并把在 sinInf中出现的次数也给查出来。

正好用上了:

直接上SQL

select a.stuID,a.stuName,a.stuFirst,a.stuSecond,b.stName,count(c.stuID) as times 
from stuInf a,sType b,sinInf c 
where a.stuID=c.stuID and b.ID=c.stID group by (a.stuID,a.stuName,a.stuFirst,a.stuSecond,b.stName)

可是总是提示错误:在","附近出现语法错误

试了和各种组合不好用,这种表示在 oracle 11g中是没有问题的。

oracle 11g 如下是没有问题的:

select a.ztm,a.zrz,count(b.kzh) 
from zyk a,zykdck b 
where a.kzh=b.kzh 
group by (a.ztm,a.zrz)

 

最后老老实实的一个字段一个字段的加,

发现sql server 2000 下把括号去掉就可以了:

select a.stuID,a.stuName,a.stuFirst,a.stuSecond,b.stName,count(c.stuID) as times 
from stuInf a,sType b,sinInf c
where a.stuID=c.stuID and b.ID=c.stID group by a.stuID,a.stuName,a.stuFirst,a.stuSecond,b.stName

 

转载于:https://www.cnblogs.com/ssqhan/p/5053398.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值