有三个表:
学生表: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 产品 --表怪怪的 |
相关推荐
这篇文档《2011 SQL笔试题》及其压缩包资源,显然是为了帮助学习者或者应聘者准备SQL相关的面试或笔试而准备的。 SQL的基础知识点包括: 1. **数据类型**:SQL支持多种数据类型,如整数(INT)、浮点数(FLOAT)、...
以下是一些关于SQL笔试选择题中的关键知识点: 1. **关系型数据库**:关系型数据库是一种以表格形式存储数据的数据库,其中数据之间的关系可以通过外键进行关联。题目中提到的Oracle和MySql都是典型的关系型数据库...
这些文档集合,如"SQL上机考试与阅卷系统.doc"、"《SQL数据库管理与开发》试题(K卷).doc"等,提供了丰富的SQL笔试题目,旨在帮助初学者和求职者提升SQL技能并准备面试。 在SQL笔试题中,常见的知识点包括但不限于...
SQL笔试题库。
题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等
经典sql练习,几道经典的SQL笔试题题目。sql就在于多多练习
SQL笔试题知识点总结 以下是根据给定的文件信息,生成的相关知识点总结: 一、基本概念 1. 数据库管理系统(DBMS):数据库管理系统是一个软件系统,用于创建、设计、管理和维护数据库。 2. RDBMS(Relational ...
在进行SQL笔试时,面试者通常会被要求解决各种数据库查询、数据操作、数据库设计以及性能优化等问题。本篇文章将详细探讨SQL笔试中的核心知识点,帮助你更好地理解和应对这类考试。 1. **基本查询操作**: - `...
1到3年工作经验的 sql面试笔试题(通过面试360,华为,阿里收集)
### SQL笔试题概述 该文件提供了一系列SQL基础知识的笔试题目,并附带了多种题型及其答案。这些题目旨在帮助读者复习和巩固SQL基础知识。 ### SQL基础知识详解 #### 1. SQL基础操作 - **SQL文件管理**:SQL文件...
SQL 笔试题是数据库领域中的一个重要组成部分,涉及到数据库的各个方面,包括触发器、存储过程、索引、内存泄漏、事务、锁、视图、游标等知识点。 1. 触发器的作用:触发器是一种特殊的存储过程,通过事件来触发...
SQL笔试题通常考察应聘者对于SQL语言的理解和实际应用能力,尤其是查询语句的编写、SQL函数的使用,以及多表连接操作等。本次整理的SQL题目覆盖了这些基础而又核心的知识点。 首先,基础查询语句的编写是考察的重点...
十家互联网大厂SQL笔试题 本资源为十家互联网大厂的SQL笔试题,涵盖了多个方面的SQL知识点,如用户活跃、留存和粘性分析、红包流向探索分析等。以下是对应的知识点: 一、用户活跃、留存和粘性分析 1. 活跃用户数...
这个"10家互联网大厂SQL笔试题目和答案合集"提供了丰富的实践材料,帮助学习者提升SQL技能,以应对可能的面试或工作挑战。 首先,SQL的基础知识包括数据查询、数据更新、数据插入和数据删除,这些是SQL的四大基本...
根据给定的文件信息,以下是对SQL笔试题的详细知识点解析: ### 1. 查询第30部门的所有员工 题目要求查询所有属于部门编号为30的员工信息。 ```sql SELECT * FROM iv_emp WHERE deptno = 30; ``` ### 2. 查询所有...
SQL笔试题解析 本文将对常见SQL笔试题进行解析,涵盖了多个知识点,包括统计查询、条件判断、日期统计等。下面是对每个题目的详细解析。 1. 统计查询SQL练习 问题:统计查询SQL练习,数据库中表结构如下,字段...
"SQL笔试题答案" 在本资源中,我们将逐步解释SQL笔试题的答案。这些问题涵盖了SQL基础知识、数据类型、数据操作语言(DML)、数据定义语言(DDL)、事务控制、索引、触发器、视图等方面。 单词解释 在SQL中,了解...
SQL笔试题知识点总结 本资源摘要信息涵盖了SQL笔试题的知识点,包括SQL命令、查询语句、数据类型、数据库设计等方面的知识。 一、SQL基本命令 * 使用UPDATE命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,...
SQL是Structured Query Language的缩写,是用于管理和...以上就是SQL笔试题涉及的关键知识点,涵盖了数据库基础概念、SQL语句的使用以及事务和索引的理解。理解并熟练掌握这些概念对于数据库管理和开发工作至关重要。
SQL笔试选择题 本文是关于SQL笔试选择题的知识点总结,涵盖数据库设计、数据冗余、实体关系图、主键、唯一约束、子查询、存储过程、数据库规范化等方面的知识点。 数据库设计 * 数据库设计的最终目标包括高效、...