数据库实验答案实验二Sql

合集下载

《数据库》实验二SQL查询代码

《数据库》实验二SQL查询代码
)
)
)
);
Q23. List the names of managers who have at least one dependent.
查询至少有一个家属的部门经理姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
ORDER BY FNAME ASC;
Q2. 查询不重复的员工工资值。
SELECT DISTINCT SALARY FROM EMPLOYEE
Q3. 查询没有直接上司的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SUPERSSN IS NULL;
查询至少参与了所有John Smith参与项目的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
SELECT ESSN FROM WORKS_ON
WHERE PNO=ANY (
SELECT PNUMBER FROM PROJECT
Q16. Select all combinations of EMPLOYEE SSN and DEPARTMENT DNAME in the Company database.
查询Company数据库中所有员工SSN与DNAME(部门名称)的组合。
SELECT E.SSN,D.DNAME
WHERE SALARY>=30000 GROUP BY D.DNAME
HAVING COUNT(SALARY)>=2;
Q18. Retrieve the names of all employees who do not work on any project controlled by department number 5.

SQL数据库实验报告实验二

SQL数据库实验报告实验二

SQL数据库实验报告实验二第一篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。

(2)掌握使用SQL Server管理平台对数据库进行管理的方法。

(3)掌握使用Transact-SQL语句对数据库进行管理的方法。

2.实验内容及步骤(1)在SQL Server管理平台中创建数据库。

① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。

② 右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。

在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。

(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。

(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。

指定“最大文件大小”为5MB。

修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。

(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。

然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

(5)在查询设计器中使用Transact-SQL语句ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。

(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。

(7)使用SQL Server管理平台将studb数据库的名称更改为student_db。

(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。

数据库SQL实验操作答案

数据库SQL实验操作答案

数据库SQL实验操作答案1、创立数据库:创立一个教学管理数据库,以自己的名字拼音首字母+下划线+SC作为库名〔如名字叫张三,那么:ZC_SC〕,〔1〕确定数据库名称;数据库用于学生管理,命名为如ZS_SC〔2〕确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。

〔3〕确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。

〔4〕确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。

请利用查询分析器〔Query Analyzer〕,使用SQL语句指定参数创立数据库,给出实现代码和截图。

实现代码及截图样例: SQL语句: create database CYR_SC on primary ( name='CYR_SC_DATA', filename='E:\\CYR_SC_DATA.MDF', size=30MB, filegrowth=20% ) log on ( name='CYR_SC_LOG',filename='E:\\CYR_SC_LOG.LDF', size=3mb, filegrowth=1mb )……………查询分析器执行情况: SQL语句及执行结果截图显示 2、创立根本表:〔注意:请在表名前加上自己的姓名拼音的首字母,主键前加上自己的姓名拼音的首字母,例如张三为ZC_〕其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。

创立:student表(学生信息表)、course表〔课程信息表)、teacher表〔教师信息表)、student _course表〔学生选课成绩表)、teacher_course表〔教师上课课表〕等。

请利用查询分析器,使用SQL语句将下面各表建立到教学管理数据库中。

写出SQL语句〔注意级联删除设置〕,查看各数据表之间的关系,画出实体关系图〔ER图〕。

SQL实验的题目和答案全解

SQL实验的题目和答案全解

数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。

2.熟悉通过SQL对数据库进行操作。

3.完成上机练习。

四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。

4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。

更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。

4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。

数据库实验二作业及答案

数据库实验二作业及答案

数据库实验二作业及答案实验2 SQL Server 数据库的管理一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构的特点。

2.学会使用企业管理器对数据库进行管理。

3.学会使用Transact-SQL语句对数据库进行管理。

二、实验准备1.确定能够创建数据库的用户是系统管理员,或是被授权使用CREATE DATABASE语句的用户。

2.确定要创建的数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长即增长的方式)和存储数据的文件。

3.了解常用的创建数据库方法。

三、实验内容及步骤1.在企业管理器中创建studentsdb数据库。

(1)运行SQL Server管理器,启动企业管理器,展开服务器“(LOCAL)(Windows NT)”。

(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。

在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。

2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“数据文件”、“事务日志”、“文件组”、“选项”和“权限”页面。

3.打开studentsdb数据库的“属性”对话框,在“数据文件”选项卡中修改studentsdb数据文件的“分配空间”大小为2MB。

指定“最大文件大小”为5MB.在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。

4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。

然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

CREATEdatabase studbON(NAME=studb,FILENAME='C:\database')exec sp_helpdb5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。

数据库实验二

数据库实验二

实验(二): 熟练掌握SQL语言1.求选修了课程的学生的学号,要求:(1) 不使用distinct语句,消除重复元组,写出其SQL语句select SC.Sno from SC;(2)使用distinct语句,消除重复元组,写出其SQL语句selectdistinct(SC.Sno)from SC;(3)如果该查询写成:select Student.Sno from Student, SC where Student.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的?select Student.Sno from Student,SCwhere Student.Sno=SC.Sno;查询结果和第一个结果相同。

2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。

select Cno '课程号',Cname '课程名',Ctime '学时',Ccredit '学分'from Course;3.求计算机系和数学系的学生学号、姓名和年龄。

select Sno,Sname,Sagefrom Studentwhere Sdept='计算机系'or Sdept='数学系';4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的列名。

select*from Studentwhere Sdept!='计算机系'and Sdept!='数学系';5.求全体学生的信息,要求按年龄升序排列。

select*from Studentorderby Sage;6.求计算机系年龄在18~20岁之间的学生姓名和年龄。

select Sname,Sagefrom Studentwhere Sdept='计算机系'and Sage>=18 and Sage<=20;7.求姓名是以”李”开头的计算机系学生。

SQL数据库 综合实训2 参考解答

SQL数据库 综合实训2 参考解答

一、实训目的通过完成以下实践与操作,牢固掌握SQL Server 中数据库的创建与管理、数据表的创建与管理、约束的分析与创建、表中数据的输入与删除;二、实训环境PC机+Windows XP操作系统+SQL Server 2000;三、实训内容与要求实践1:设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。

四个表的结构如下:根据需要,定义好各个表的约束,比如在Student表中,性别只能是“男”或“女”;在Grade表中,成绩的取值范围为0-100;建立好四个数据表之间的参照完整性关系;用SQL语句创建库与四个表(在创建表结构同时定义各种约束)。

create database GradeManagergouse GradeManagercreate table Student(Sno char(7) not null constraint prik_Sno primary key clustered,Sname varchar(20) not null ,Ssex char(2) not null constraint Ssex_sex check(Ssex='男' or Ssex='女'),Sage smallint,Clno char(5) not null)create table Course(Cno char(1) not null constraint prik_Cno primary key clustered,Cname varchar(20) not null ,Credit smallint)create table Class(Clno char(5) not null constraint prik_Clno primary key clustered, Speciality varchar(20) not null,Inyear char(4) not null,Number int,Moniter char(7) foreign key references Student(Sno))create table Grade(Sno char(7) not null foreign key references Student(Sno),Cno char(1) not null foreign key references Course(Cno),Gmark decimal(4,1) constraint Grade_Gmark check(Gmark<=100 and Gmark>=0))Go实践2:给学生表增加一属性Nation(民族),数据类型为Varchar(20);用select语句查询,查看是否确实已经增加了一个字段;然后删除学生表中的属性Nation,之后用select语句查询操作结果;use GradeManageralter table Student add Nation varchar(20)gouse GradeManagerselect * from Studentgouse GradeManageralter table Student drop column Nationgouse GradeManagerselect * from Studentgo实践3:向四个表中分别插入如下记录,之后用select语句查询操作结果;(此处输入SQL代码及运行结果)--向表Student中输入数据use GradeManagerinsert into Student values('2000101','李勇','男',20,'00311') insert into Student values('2000102','刘诗晨','女',19,'00311') insert into Student values('2000103','王一鸣','男',20,'00312') insert into Student values('2000104','张婷婷','女',21,'00312') insert into Student values('2001101','李勇敏','女',19,'01311') insert into Student values('2001102','贾向东','男',22,'01311') insert into Student values('2001103','陈宝玉','男',20,'01311') go--向表Course中输入数据use GradeManagerinsert into Course values('1','数据库',4)insert into Course values('2','离散数学',3)insert into Course values('3','管理信息系统',2)insert into Course values('4','操作系统',4)insert into Course values('5','数据结构',4)insert into Course values('6','数据处理',2)insert into Course values('7','C语言',4)go--向表Class中输入数据use GradeManagerinsert into Class values('00311','计算机软件','2000',120,'2000101') insert into Class values('00312','计算机应用','2000',140,'2000103') insert into Class values('01311','计算机软件','2001',220,'2001103') go--向表Grade中输入数据use GradeManagerinsert into Grade values('2000101','1',92)insert into Grade values('2000101','3',88)insert into Grade values('2000101','5',86)insert into Grade values('2000102','1',78)insert into Grade values('2000102','6',55)insert into Grade values('2000103','3',65)insert into Grade values('2000103','6',78)insert into Grade values('2000103','5',66)insert into Grade values('2000104','1',54)insert into Grade values('2000104','6',83)insert into Grade values('2001101','2',70)insert into Grade values('2001101','4',65)insert into Grade values('2001102','2',80)insert into Grade values('2001102','4',90)insert into Grade values('2001102','6',83)insert into Grade values('2001103','4',76)insert into Grade values('2001103','6',56)go实践4:把学号为”2001101”的学生的成绩修改为70分,之后用select语句查询操作结果;use GradeManagerupdate Grade set Gmark='70' where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践5:删除学号为”2001101”的学生的成绩记录,之后用select语句查询操作结果;use GradeManagerdelete from Grade where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践6:将01311班的全体学生的成绩置零,之后用select语句查询操作结果;use GradeManagerselect Sno from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用update命令更新Grade 表:use GradeManagerupdate Grade set Gmark='0' where (Sno='2001101' or Sno='2001102' or Sno='2001103')go--验证update操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践7:删除2001级计算机软件的全体学生的选课记录,之后用select语句查询操作结果;--先从表Class中查出2001级的计算机软件专业班级号use GradeManagerselect Clno from Class where (Speciality='计算机软件' and Inyear='2001') go//查到班级号01311,再用班级号从表Student中查出这个班级的学生学号use GradeManagerselect * from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用delete命令删除Grade 表中有关成绩记录:use GradeManagerdelete from Grade where (Sno='2001101' or Sno='2001102' or Sno='2001103') go--验证delete操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践8:学生李勇已退学,从数据库中删除有关他的记录,之后用select语句查询操作结果。

SQLSERVER2008实用教程实验参考答案(实验2)

SQLSERVER2008实用教程实验参考答案(实验2)

实验2 创建数据库和表1、在D盘根目录下新建文件夹,并命名为Data,用来存储实验环境新建的数据库。

2、使用T-SQL语句创建数据库:USE masterGO--YGGL数据库如果存在,则将其删除IF EXISTS(SELECT name FROM sys.databases WHERE name='YGGL') DROP DATABASE YGGLGOUSE masterGO--新建数据库CREATE DATABASE YGGLON(NAME='YGGL_Data',FILENAME='D:\Data\YGGL.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME='YGGL_Log',FILENAME='D:\Data\YGGL_log.ldf',SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)3、在YGGL数据库下建三个表Employees、Departments、Salary。

--切换到数据库YGGL下USE YGGLGO--新建Employees表CREATE TABLE Employees(EmployeeID char(6)NOT NULL PRIMARY KEY,Name char(10)NOT NULL,Education char(4)NOT NULL,Birthday date NOT NULL,Sex bit NOT NULL DEFAULT 1,WorkYear tinyint NULL,Address varchar(40)NULL,PhoneNumber char(12)NULL,DepartmentID char(3)NOT NULL)--新建Departments表CREATE TABLE Departments(DepartmentID char(3)NOT NULL PRIMARY KEY,DepartmentName char(20)NOT NULL,Note varchar(100)NULL)--新建Salary表CREATE TABLE Salary(EmployeeID char(6)NOT NULL PRIMARY KEY,InCome float NOT NULL,OutCome float NOT NULL)--建立Employees表的外键ALTER TABLE Employees WITH CHECK ADD CONSTRAINTFK_Employees_Departments FOREIGN KEY(DepartmentID)REFERENCES Departments(DepartmentID)--启用外键约束ALTER TABLE Employees CHECK CONSTRAINT FK_Employees_Departments--建立Salary表的外键ALTER TABLE Salary WITH CHECK ADD CONSTRAINT FK_Salary_Employees FOREIGN KEY(EmployeeID)REFERENCES Employees(EmployeeID)--启用外键约束ALTER TABLE Salary CHECK CONSTRAINT FK_Salary_Employees。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1) 查找有销售记录的客户编号、名称和订单总额。

命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。

命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。

命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。

命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。

命令:SELECT employeeName,case sexwhen 'F' then '女'when 'M' then '男' end sex,orderDate,quantity,quantity*price 金额FROM Employee a,OrderMaster b,OrderDetail cWHERE a.employeeNo=b.salerNo AND b.orderNo=c.orderNoAND c.ProductNo IN (SELECT f.ProductNoFROM OrderMaster d,OrderDetail e,Product fWHERE d.orderNo=e.orderNo AND ProductName='32M DRAM')(6) 查询sales表中订单金额最高的订单号及订单金额。

命令:SELECT top 1 orderNo,sum(quantity*price)orderSumFROM OrderDetailGROUP BY orderNoORDER BY orderSum DESC或SELECT orderNo,orderSumFROM OrderMasterWHERE orderSum = (SELECT max(orderSum)FROM OrderMaster)(7) 计算出一共销售了几种商品。

SELECT COUNT(*)种类FROM (SELECT DISTINCT ProductNo FROM OrderDetail)a(8) 显示OrderDetail表中每种商品的订购金额总和,并且依据销售金额由大到小排序输出。

SELECT a.ProductNo,sum(sumOrder)金额总和FROM (SELECT ProductNo,sumOrder=quantity*price FROM OrderDetail )aGROUP BY a.ProductNoORDER BY sum(sumOrder) DESC(9) 查找销售总额大于1000元的销售员编号、姓名和销售额。

SELECT salerNo,employeeName,sum(orderSum)TotalFROM OrderMaster a,Employee bWHERE employeeNo=salerNo AND orderSum>1000GROUP BY salerNo,employeeName(10) 找出目前业绩未超过5000元的员工,并按销售业绩的降序排序输出。

SELECT employeeNo,employeeName,SumOrderFROM (SELECT employeeNo,employeeName FROM Employee)x left join(SELECT salerNo,sum(sumOrder) SumOrderFROM (SELECT salerNo,sumOrder=quantity*price FROM OrderMaster a left outer join OrderDetail b on a.orderNo=b.orderNo)mGROUP BY salerNo)y on x.employeeNo=y.salerNoWHERE SumOrder<5000ORDER BY SumOrder DESC(11) 在Employee表中查询薪水超过员工平均薪水的员工信息。

SELECT *FROM EmployeeWHERE salary>(SELECT avg(salary) avgSalary FROM EmployeeWHEREdepartment='业务科' or department='财务科' or department='办公室')—可以没条件(12) 计算每一种商品的销售数量、平均销售单价和总销售金额。

SELECT ProductNo,sum(quantity)销售数量,sum(quantity*price)/sum(quantity)平均销售单价,sum(quantity*price)总销售金额FROM OrderDetailGROUP BY ProductNo(13) 查找至少有3次销售的业务员名单和销售日期。

SELECT employeeName,orderDateFROM OrderMaster a left join Employee b on b.employeeNo=a.salerNoWHERE salerNo=(SELECT salerNo FROM OrderMaster GROUP BY salerNo having COUNT(*)>2)(14) 用存在量词查找没有订货记录的客户名称。

SELECT CustomerName,CustomerNoFROM Customer aWHERE NOT EXISTS(SELECT * FROM OrderMaster b WHERE EXISTS(SELECT CustomerNo FROM OrderMasterWHERE CustomerNo=a.CustomerNo AND a.CustomerNo=b.CustomerNo ))(15) 查询订单中所订购的商品数量没有超过10个的客户编号和客户名称。

SELECT x.CustomerNo,CustomerNameFROM OrderMaster x,Customer yWHERE x.CustomerNo=y.CustomerNo AND orderNo IN(SELECT orderNo FROM OrderDetailGROUP BY orderNohaving sum(quantity)<=10)(16) 在销售明细表中按商品编号进行汇总,统计每种商品的销售数量和金额。

SELECT ProductNo,sum(quantity)销售数量,sum(quantity*price)销售金额FROM OrderDetailGROUP BY ProductNo(17) 按客户编号统计每个客户2008年2月的订单总金额。

SELECT a.customerNo,orderDate,sum(orderSum)总金额FROM OrderMaster a,Customer bWHERE a.customerNo=b.customerNo AND year(orderDate)='2008'AND month(orderDate)='2' GROUP BY a.customerNo,orderDate(18) 查找定单金额高于8000的所有客户编号。

SELECT CustomerNoFROM OrderMasterWHERE orderNo IN (SELECT orderNoFROM (SELECT orderNo,orderSum=quantity*price FROM OrderDetail )xGROUP BY orderNohavINg sum(orderSum)>8000)(19) 显示每种商品的销售金额总和,并依销售金额由大到小输出。

SELECT ProductNo,sum(quantity*price)销售金额FROM OrderDetailGROUP BY ProductNoORDER BY sum(quantity*price) DESC(20) 查找销售金额最大的客户名称和总货款。

SELECT top 1 CustomerName,sum(quantity*price)销售金额FROM Customer x left joIN (SELECT a.orderNo,quantity,price,CustomerNoFROM OrderDetail a left joIN OrderMaster b on a.orderNo=b.orderNoWHERE a.orderNo=b.orderNo)y onx.CustomerNo=y.CustomerNoGROUP BY CustomerNameORDER BY sum(quantity*price) DESC(21) 查找至少销售了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额。

相关文档
最新文档