老师让我们用,Sql Server2000,嵌套查询或者稍微复杂一点的查询就根本无法驾驭,应该是没有找到方法吧。
高人们,推荐应该学习的书,或者突破点吧,期末结束还有课程设计,就这么点水平,很难想象我能设计数据库!

解决方案 »

  1.   

    1、首先要把学的都牢牢记住,
    2、经常使用sql语句,反复测试,需要经历很长一个过程
    3、基本掌握了sql的一点点原理
      

  2.   

    运动会比赛信息的数据库:
    运动员y:(运动员编号ynum,运动员姓名yname,运动员性别ysex,所属系名ydep)
    项目x:(项目编号xnum,项目名称xname,项目比赛地点xplace)
    成绩c:(运动员编号ynum,项目编号xnum,积分score)
    ------------------------------------------------------------------------------------
    1.求出目前总积分最高的系名,及其积分.select ydep,score
    from y,x,c
    where y.ynum=c.ynum and x.xnum=c.xnum
    group by ydep
    having sum(score)>=all
    (
     select sum(score)
     from y,x,c
     where y.ynum=c.ynum and x.xnum=c.xnum
     group by ydep
     ) 2.找出在1操场进行比赛的各项目名称及其冠军的姓名
    select xname,yname
    from y,x,c
    where y.ynum=c.ynum and x.xnum=c.xnum and score=
    (
    select max(score)
    from y,x,c
    where y.ynum=c.ynum and x.xnum=c.xnum
    group by xname
    )
    group by xname3.找出参加了张三所参加的所有项目的其他同学的姓名
    select xname,yname
    from y,x,c
    where y.ynum=c.ynum and x.xnum=c.xnum and xum in
    (
    select xnum
    from y,c
    where c.ynum=y.ynum and y.name='张三'
    ) and xname!='张三'-------------------------------------------------------------------
    我就根据自己的水平这样写了这三个问题,大家能不能帮忙纠错,这对于我很重要,一通百通!
    请使用像我一样稚嫩的语句纠正, 尽量是在我的基础上纠正问题, 如果实在错的一塌糊涂,
    就写一段完整的如此稚嫩的语句让我学习一下思想,非常感谢! 帮忙的幸福一生....
      

  3.   

    在第2题的where里再增加一个and x.place='1 操场'当然...我觉得第二问注定写错了.
      

  4.   

    select ydep,sum(grade)as 总成绩
    from 成绩,运动员
    where 成绩.ynum=运动员.ynum
    group by ydep
    having sum(grade)>=all
    (
    select sum(grade)
    from 成绩,运动员
    where 成绩.ynum=运动员.ynum
    group by  ydep
    )select xname,yname
    from 成绩,运动员,项目
    where 成绩.ynum=运动员.ynum and 成绩.xnum=项目.xnum and grade >= all
    (
    select grade
    from 成绩,项目
    where 成绩.xnum=项目.xnum and xplace ='1操场'
    )select *
    from 运动员,成绩
    where 运动员.ynum=成绩.ynum and xnum in
    (
    select xnum
    from 运动员,成绩
    where 运动员.ynum=成绩.ynum and  yname='张三'
    )
    and yname <>'张三'
    就是这样了 有些细节你应该检查一下 比如xnum 你写成xum
    != 一般写成<>等等细节上
      

  5.   

    select xname,yname
    from 成绩,运动员,项目
    where 成绩.ynum=运动员.ynum and 成绩.xnum=项目.xnum and grade >= all
    (
    select grade
    from 成绩,项目
    where 成绩.xnum=项目.xnum and xplace ='1操场'
    )这个grade>=all() 对不对,我理解不了. 分数大于所有在操场1的分数,不同的项目也要比么。