下面是一个设备管理数据库,包括四张表。
设备清单表
设备管理数据库 sql 查询_休闲
设备大修表
设备管理数据库 sql 查询_其他_02
部门代码表
设备管理数据库 sql 查询_其他_03
增值表
设备管理数据库 sql 查询_休闲_04
 
问题:
1. 找出价格低于20000元的设备名称、启用日期与部门
Select 名称,启用日期,部门,价格 from 设备清单表;
where 价格<20000
2. :查询大修过的设备的编号、名称和部门名
Select 设备大修表.编号,设备清单表.名称,部门代码表.名称 ;
as 部门名 from 设备清单表,设备大修表,部门代码表;
where 设备大修表.编号=设备清单表.编号;
And 部门代码表.代码=设备清单表.部门
3. 将设备清单表的记录按部门升序排列,部门相同时按价格降序排列.
Select * from 设备清单表 order by 部门,价格 desc
4. 求出每一设备的增值金额.
Select 设备清单表.名称,sum(增值表.增值) from 增值表,设备清单表;
Where 设备清单表.编号=增值表.编号 group by 增值表.编号
5.  求出各部门的设备总价
方法一:
Select 部门,sum(价格) from 设备清单表 group by 部门
方法二:
Select 设备清单表.部门,sum(设备清单表.价格),部门代码表.名称;
from 设备清单表,部门代码表;
 where 部门代码表.代码=设备清单表.部门;
 group by 设备清单表.部门
6. 找出大修费用已超过5000元的设备,并将结果存入数组y
Select 编号 from 设备大修表 group by 编号 ;
Having sum(费用)>5000 Into array y
注意: 在存在group by子句时,设置查询条件应用having子句,而不是where子句.
7. 求出设备总价超过20000元的部门
Select 部门代码表.名称,sum(设备清单表.价格) ;
from 部门代码表,设备清单表 ;
where 部门代码表.代码=设备清单表.部门 ;
group by 设备清单表.部门 having sum(设备清单表.价格) >20000
8. 查找增值设备的编号、名称及每次增值的金额。
 方法1
  SELECT 设备清单表.编号,设备清单表.名称, 增值表.增值;
FROM 设备清单表 INNER JOIN 增值表;
 ON 设备清单表.编号=增值表.编号
或者  SELECT 设备清单表.编号,设备清单表.名称, 增值表.增值;
FROM 增值表 INNER JOIN 设备清单表 ;
ON 设备清单表.编号=增值表.编号
方法 2
 SELECT 设备清单表.编号, 设备清单表.名称, 增值表.增值;
 FROM 设备清单表,增值表 ;
WHERE 设备清单表.编号=增值表.编号
9. 试汇总设备的大修费用,要求:
 (1) 编号头三位小于038
 (2) 显示设备名称与大修费用小计
 (3) 显示结果按大修费用小计降序排列
 方法一:
  SELECT 设备清单表.名称,SUM(设备大修表.费用) ;
FROM 设备清单表 INNER JOIN 设备大修表;
 ON 设备清单表.编号=设备大修表.编号;
    WHERE LEFT(设备大修表.编号,3)<“038”;
    GROUP BY 设备大修表.编号 ORDER BY 2 DESC
方法二:
SELECT 设备清单表.名称,SUM(设备大修表.费用);
 FROM 设备清单表,设备大修表 ;
   WHERE 设备大修表.编号=设备清单表.编号 AND ;
   LEFT(设备清单表.编号,3)<“038”;
   GROUP BY 设备大修表.编号;
   ORDER BY 2 DESC
10.查询价格小于10万元的设备的启用日期。
Select 名称,启用日期 from 设备清单表 where 价格<100000
11.查询车间使用的设备或价格不小于10万元的设备的部门名,查询结果按启用日期从小到大排列。
Select 设备清单表.名称, 设备清单表.价格, 设备清单表.启用日期,;
部门代码表.名称 from 设备清单表,部门代码表 ;
Where 设备清单表.部门=部门代码表.代码 ;
and (“车间”$部门代码表.名称 or 设备清单表.价格>=100000);
 order by 设备清单表.启用日期
12.查询1990年启用的设备的名称和部门名。
Select 设备清单表.名称,部门代码表.名称, 设备清单表.启用日期;
from  设备清单表,部门代码表;
where 设备清单表.部门=部门代码表.代码 and ;
year(设备清单表.启用日期)=1990
13.查询大修过的设备的编号和名称,查询结果输出到表RESULT.DBF
Select 设备大修表.编号,设备清单表.名称 ;
From  设备清单表,设备大修表 ;
Where 设备清单表.编号=设备大修表.编号 into dbf result.dbf
14.查询有增值的设备的设备名和部门名。
Select 设备清单表.名称,部门代码表.名称,增值表.增值;
From设备清单表,部门代码表,增值表 ;
Where 设备清单表.部门=部门代码表.代码 and ;
设备清单表.编号=增值表.编号
15.试算出1992年启用的主要设备的台数。
Select count(编号) from 设备清单表 where 主要设备=.t. ;
And year(启用日期)=1992
16.试算出大修过的设备中每种设备大修费用的平均值。
Select 设备清单表.名称,avg(设备大修表.费用) ;
From 设备清单表,设备大修表 ;
Where 设备清单表.编号=设备大修表.编号 ;
group by 设备大修表.编号
17.查询最早启用和最晚启用的设备。
方法一:
Select max(启用日期),min(启用日期) from 设备清单表 ;
Into array x
Select 名称,启用日期 from 设备清单表 ;
Where 启用日期=x(1) or 启用日期=x(2)
方法二:
Select 名称,启用日期 from 设备清单表 ;
where 启用日期=(Select max(启用日期) from 设备清单表) ;
or 启用日期=(Select min(启用日期) from 设备清单表)
注释: 方法二属于嵌套查询.