`
longgangbai
  • 浏览: 7349626 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql 笔试题(二)

阅读更多

有三个表:
学生表:student  字段:stuID,chinesename,sex,scholarship(奖学金)
成绩表:grade    字段:graID,studID,courceID,grade
课程表:cource    字段:courceID,courceName,xuefen
求:查询分数都在90分以上的学生的stuID,chinesename
create table student(stuID int,chinesename nvarchar(20),sex int,scholarship money)
go
insert into student select 1,'allen',1,500 union all
select 2,'tom',1,0 union all
select 3,'jordan',1,1000 union all
select 4,'kobe',1,0
go
create table grade(graID int,stuID int,courceID int,grade decimal(4,1))
insert into grade select 1,4,1,80.8 union all
select 2,4,2,90 union all
select 3,4,3,100 union all
select 4,3,1,55 union all
select 5,3,2,86 union all
select 6,3,3,90.5 union all
select 7,1,1,95 union all
select 8,1,2,99.5 union all
select 9,1,3,96 union all
select 10,2,1,60 union all
select 11,2,2,66 union all
select 12,2,3,68
go
create table cource(courceID int,courceName nvarchar(20),xuefen int)
insert into cource select 1,'语文',5 union all
select 2,'数学',6 union all
select 3,'外语',6

select * from student where stuID in(
select stuID from grade
where grade>90
group by stuid having count(*)=(select count(*) from cource))

 

 

 

 

select s.stuID,s.chinesename from student s inner join grade g on s.stuID=g.stuID inner join cource c on c.courceID=g.courceID
where g.grade>=90 group by s.stuID,s.chinesename having count(g.courceID)=(select count(*) from cource)

 

学员分数表   
  姓名                     科目           分数   
  zhang   san         语文             60   
  lisi                   语文             71   
  wangwu               语文             61   
  zhaoliu             语文             90   
  .....       
    
    
  所得结果     
    
  姓名   
  zhang   san         语文             第四名   
  lisi                   语文             第二名   
  wangwu               语文             第三名   
  zhaoliu             语文             第一名   
              想破头也想不出来,敬请高人指点,谢谢!
 
 
  DECLARE   @T   TABLE(NAME   VARCHAR(50),SUBJECT   VARCHAR(20),GRADE   INT)   
  INSERT   @T   SELECT   ’zhang   san’,’语文’,60   
  UNION   ALL   SELECT   ’lisi’,’语文’,71   
  UNION   ALL   SELECT   ’wangwu’,’语文’,61   
  UNION   ALL   SELECT   ’zhaoliu’,’语文’,90   
    
  SELECT   
            NAME,   
            SUBJECT,   
            PM=(SELECT   COUNT(1)   FROM   @T   WHERE     GRADE>=A.GRADE)   
  FROM   @T   A   
 
 
 
 
 
 
 
 
 
SELECT   *   INTO   #TB_SCORE   
  FROM   
  (   
  SELECT   ’zhang   san’姓名,’语文’课程,’60’成绩   
  UNION   ALL   
  SELECT   ’lisi’姓名,’语文’课程,’71’成绩   
  UNION   ALL   
  SELECT   ’wangwu’姓名,’语文’课程,’61’成绩   
  UNION   ALL   
  SELECT   ’zhaoliu’姓名,’语文’课程,’90’成绩   
  UNION   ALL   
  SELECT   ’youran’姓名,’语文’课程,’60’成绩   
  )A   
    
  SELECT   *   FROM   #TB_SCORE   
    
  SELECT   姓名,课程,#TB_SCORE.成绩,’第’+CONVERT(VARCHAR(2),名次)+’名’AS   名次   
  FROM   #TB_SCORE   
  INNER   JOIN   
  (   
    SELECT   成绩,名次=(SELECT   COUNT(1)   FROM(SELECT   DISTINCT   成绩   FROM   #TB_SCORE)B   WHERE   B.成绩>=A.成绩)   
    FROM   
    (SELECT   DISTINCT   成绩   FROM   #TB_SCORE)A   
  )T   ON   T.成绩   =   #TB_SCORE.成绩   
  ORDER   BY   名次
  select   姓名=a.name,科目=a.kemo,   
  名次=case     when   (select   count(fenshu)from   Type   where   fenshu>a.fenshu)+1=1   then   ’第一名’   
  when   (select   count(fenshu)from   Type   where   fenshu>a.fenshu)+1=2   then   ’第二名’   
  when   (select   count(fenshu)from   Type   where   fenshu>a.fenshu)+1=3   then   ’第三名’   
  when   (select   count(fenshu)from   Type   where   fenshu>a.fenshu)+1=4   then   ’第四名’   
  end     from   Type   as   a

 

京尚良楷诚网络 sql笔试题
时间:2009年1月13日 作者:
  
 
群上的兄弟,谁帮忙做下这个题目:   
    
  一个简单的表TABLE   有100条以上的信息,其中包括:   
  产品                   颜色                           数量   
  产品1                   红色                           123   
  产品1                   蓝色                           126   
  产品2                   蓝色                           103   
  产品2                   红色                           NULL   
  产品2                   红色                           89   
  产品1                   红色                           203   
  。。。。。。。。。。。。   
  请用SQL语句完成以下问题:   
    
    
  1。按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量:   
    
    
    
    
    
  2。按产品分类,将数据按下列方式进行统计显示   
              产品                   红色                       蓝色   
 
 
 
 
按产品分类,将数据按下列方式进行统计显示   
  create   table   test(产品   varchar(10),颜色   varchar(10),数量   int)   
  insert   test   select   ’产品1’,’红色’,123   
  insert   test   select   ’产品1’,’蓝色’,126   
  insert   test   select   ’产品2’,’蓝色’,103   
  insert   test   select   ’产品2’,’红色’,NULL   
  insert   test   select   ’产品2’,’红色’,89   
  insert   test   select   ’产品1’,’红色’,203   
  select   *   from   test   
  select   产品,红色=sum(case   when   颜色=’红色’   then   数量   else   0   end),   
  蓝色=sum(case   when   颜色=’蓝色’   then   数量   else   0   end)   from   test   group   by   产品
 
 
 
  select   产品,sum(case   when   颜色=’红色’   then   数量   else   0   end)-sum(case   when   颜色=’蓝色’   then   数量   else   0   end)   as   差额   
  from   test     
  group   by   产品   
  having   sum(case   when   颜色=’红色’   then   数量   else   0   end)>sum(case   when   颜色=’蓝色’   then   数量   else   0   end)   
 
 
 
如果只有两种颜色也可以这样:   
  1:   
  select   产品,sum(IsNull(数量,0)   *     Replace(replace(颜色,’红色’,1),’蓝色’,-1))   
  from   test   
  group   by   产品   
  having   sum(IsNull(数量,0)   *     Replace(replace(颜色,’红色’,1),’蓝色’,-1))>0   
    
  2:   
  select   产品,sum(IsNull(数量,0)   *     Replace(replace(颜色,’红色’,1),’蓝色’,0))   
  ,sum(IsNull(数量,0)   *     Replace(replace(颜色,’红色’,0),’蓝色’,1))   
  from   test   
  group   by   产品   
  having   sum(IsNull(数量,0)   *     Replace(replace(颜色,’红色’,1),’蓝色’,-1))>0   
 
 
 
create   table   test(产品   varchar(10),颜色   varchar(10),数量   int)   
  insert   test   select   ’产品1’,’红色’,123   
  insert   test   select   ’产品1’,’蓝色’,126   
  insert   test   select   ’产品2’,’蓝色’,103   
  insert   test   select   ’产品2’,’红色’,NULL   
  insert   test   select   ’产品2’,’红色’,89   
  insert   test   select   ’产品1’,’红色’,203   
  --1   
  select   产品,sum(a)   
  from   
  (   
  select   产品,-数量   as   a   
  from   test   
  where   颜色=’蓝色’   
  union   all   
  select   产品,数量   as   a   
  from   test   
  where   颜色=’红色’   
  )   as   b   
  group   by   产品   
  having   sum(a)>0   
  --2   
  select   产品,红色=sum(case   when   颜色=’红色’   then   数量   else   0   end),   
  蓝色=sum(case   when   颜色=’蓝色’   then   数量   else   0   end)   from   test   group   by   产品   
  --表怪怪的

 

 

分享到:
评论

相关推荐

    SQL笔试题(转载的)

    这篇文档《2011 SQL笔试题》及其压缩包资源,显然是为了帮助学习者或者应聘者准备SQL相关的面试或笔试而准备的。 SQL的基础知识点包括: 1. **数据类型**:SQL支持多种数据类型,如整数(INT)、浮点数(FLOAT)、...

    SQL笔试题库(有答案)

    SQL笔试题库。

    大公司sql笔试题

    1到3年工作经验的 sql面试笔试题(通过面试360,华为,阿里收集)

    sql server笔试题

    自己整理的SQLserver笔试题。 当做知识点记了 内附答案

    经典的SQL笔试题题目

    经典sql练习,几道经典的SQL笔试题题目。sql就在于多多练习

    常见的SQL笔试选择题含答案.docx

    以下是一些关于SQL笔试选择题中的关键知识点: 1. **关系型数据库**:关系型数据库是一种以表格形式存储数据的数据库,其中数据之间的关系可以通过外键进行关联。题目中提到的Oracle和MySql都是典型的关系型数据库...

    SQL笔试题,及其答案

    在SQL笔试题中,常见的知识点包括但不限于以下几类: 1. **基本查询**:掌握SELECT语句,包括选择列、表连接(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN)、WHERE子句用于筛选数据,GROUP BY进行数据分组,...

    SQL 笔试题 数据库笔试题

    SQL 笔试题是数据库领域中的一个重要组成部分,涉及到数据库的各个方面,包括触发器、存储过程、索引、内存泄漏、事务、锁、视图、游标等知识点。 1. 触发器的作用:触发器是一种特殊的存储过程,通过事件来触发...

    SQL_Server 面试笔试试题及答案

    "SQL Server 面试笔试试题及答案" 本资源摘要提供了 SQL Server 面试笔试试题及答案,涵盖了数据库管理、数据模型、数据结构、数据库优化、SQL 语言等多方面的知识点。通过本资源,读者可以快速掌握 SQL Server 的...

    自己整理的sql笔试题

    SQL笔试题通常考察应聘者对于SQL语言的理解和实际应用能力,尤其是查询语句的编写、SQL函数的使用,以及多表连接操作等。本次整理的SQL题目覆盖了这些基础而又核心的知识点。 首先,基础查询语句的编写是考察的重点...

    sql 语句的笔试题

    SQL笔试题 本篇资源主要整理了多道SQL笔试题,涵盖了查询、删除、联合查询、分组等多个方面的知识点。 1. 查询出每门课都大于80分的学生姓名 知识点:子查询、distinct关键字 使用子查询可以实现该需求,子查询...

    SQL Server笔试题(Sql2000常见笔试题)

    【SQL Server 笔试题解析】 SQL Server 是一款由微软公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储和管理。本题主要考察的是SQL Server 2000的基础知识,包括单词解释、SQL语句编写、填空和...

    SQL笔试题(公司应聘人员所用)

    SQL笔试题知识点总结 以下是根据给定的文件信息,生成的相关知识点总结: 一、基本概念 1. 数据库管理系统(DBMS):数据库管理系统是一个软件系统,用于创建、设计、管理和维护数据库。 2. RDBMS(Relational ...

    sql常见笔试题

    以上SQL面试题,经常会出现在笔试环节,特别是java开发工程师岗位,虽然并不是很难,但对于那些比较熟悉SSH开发,不经常写SQL的同学来说,有时候还真是不知道怎么写。

    SQL Server 笔试试题

    【SQL Server 笔试试题】涉及的SQL Server是微软公司的一款关系型数据库管理系统,它在IT面试中常常作为考察的重点。下面将详细解释题目中涉及的一些核心知识点: 1. **算法的时间复杂度与空间复杂度**:算法的时间...

    sql经典笔试题一(含答案)

    SQL是Structured Query Language的缩写,是用于管理和...以上就是SQL笔试题涉及的关键知识点,涵盖了数据库基础概念、SQL语句的使用以及事务和索引的理解。理解并熟练掌握这些概念对于数据库管理和开发工作至关重要。

    sql笔试面试题目(oracle,含答案)

    题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等

    SQL-Server笔试题含答案

    SQL Server笔试题含答案 本资源是SQL Server笔试题含答案,涵盖了T-SQL语言相关的知识点。总共包括13道笔试题,涵盖了SQL Server中的多对多映射关系、事务、视图、局部变量、存储过程、索引等知识点。 1. SQL ...

    软件公司笔试题(sql)

    在软件公司的招聘过程中,SQL(Structured Query Language,结构化查询语言)是常见的一类笔试题,因为它是管理和操作关系数据库的基础。SQL不仅用于数据查询,还涉及到数据的插入、更新、删除以及数据库的设计和...

Global site tag (gtag.js) - Google Analytics