关于GROUP BY的应用

时间:2023-03-08 19:27:54

前面收藏了别人的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