关于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

 

posted @ 2015-12-17 10:59  ssqhan  阅读(235)  评论(0编辑  收藏  举报