1. 倉庫テーブル、従業員テーブル、注文フォーム、サプライヤーテーブルを含む注文管理データベースがあります。 倉庫テーブル(倉庫番号、都市、エリア) 従業員表(倉庫番号、従業員番号、給与) 発注書フォーム(従業員番号、サプライヤー番号、発注番号、注文日) サプライヤーテーブル(サプライヤー番号、サプライヤー名、都市) 以下の操作(1問から12問まで各3点、13問4点、合計40点)を完了するためにSQL文を使用してください。 : 1. 従業員関係からすべての賃金値を取得し、結果に重複する値がないことを要求します。 2. 給与1,230元以上の従業員番号と所在都市を検索します。 3. 400以上のエリアを持つ倉庫の従業員番号と、その従業員が働く都市を検索します。 4. 給与1250元以上の倉庫がある都市を調べる 5. 全従業員の給与が1210元を超える倉庫の情報を検索する。 6. 倉庫番号で昇順に並べ替え、次に給与の降順に並べ替え、すべての従業員情報を出力します。 7. 北京および上海の倉庫労働者の賃金総額を求める。 8. WH2倉庫で働く従業員の最大給与額を取得すること。 9. 従業員が少なくとも2名ある各倉庫の平均給与を取得すること。 10. 北京にないすべてのサプライヤー情報を取得。 11. 各従業員が扱った総金額が最も高い発注情報を記載します。 12. 従業員がいない倉庫の情報を取得すること。 13. WH1倉庫内の従業員の給与以上である倉庫番号を検索
SQLコード:
- use master
- --删除数据库
- if exists (select * from sysdatabases where name='订货管理')
- DROP database 订货管理
- GO
- --创建数据库
- CREATE DATABASE 订货管理
- GO
- --切换数据库
- USE 订货管理
- Go
- --1/创建仓库表(仓库号,城市,面积)
- create table 仓库表
- (
- 仓库号 char(4) primary key,
- 城市 varchar(4) not null,
- 面积 int
- )
- go
- --2/创建供应商表(供应商号,供应商名,城市)
- create table 供应商表
- (
- 供应商号 char(2) primary key,
- 供应商名 char(2),
- 城市 varchar(10)
- )
- Go
- --3/创建职工表(仓库号,职工号,工资)
- create table 职工表
- (
- 仓库号 char(4) not null references 仓库表(仓库号),
- 职工号 char(2) primary key,
- 工资 int
- )
- Go
- --4/创建订购单表(职工号,供应商号,订购单号,订购日期)
- create table 订购单表
- (
- 职工号 char(2) not null references 职工表(职工号),
- 供应商号 char(2) references 供应商表(供应商号),
- 订购单号 char(2) primary key,
- 订购日期 datetime
- )
- Go
- --1、 从职工关系中检索所有工资值,要求结果中没有重复值。
- select 职工号,工资 from 职工表
- --2、 检索工资多于1230元的职工号和他们所在的城市。
- select 城市,职工号 from 仓库表
- inner join 职工表 on 仓库表.仓库号=职工表.仓库号
- where 工资>1230
- --3、 检索工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
- select 职工号,城市 from 职工表
- inner join 仓库表 on 职工表.仓库号=仓库表.仓库号
- where 面积>400
- --4、 检索出哪些城市至少有一个仓库的职工工资为1250元
- select 城市 from 仓库表 where 仓库号 in
- (select 仓库号 from 职工表 where 工资=1250)
- --5、 检索所有职工的工资都多于1210元的仓库的信息。
- select * from 仓库表 where 仓库号 in
- (select 仓库号 from 职工表 where 工资>=1210)
- --6、 先按仓库号升序排序,再按工资降序排序并输出全部职工信息。
- select * from 职工表 order by 仓库号,工资 DESC
- --7、 求北京和上海的仓库职工的工资总和。
- select sum(工资) from 职工表 where 仓库号 in
- (select 仓库号 from 仓库表 where 城市='北京' or 城市='上海')
- --8、 求在wh2仓库工作的职工的最高工资值。
- select MAX(工资) from 职工表 where 仓库号='wh2'
- --9、 求至少有两个职工的每个仓库的平均工资。
- select 仓库号,AVG(工资) as 职工平均工资 from 职工表
- group by 仓库号
- having COUNT(职工号)>=2
- --10、 检索出不在北京的全部供应商信息。
- select * from 供应商表 where 城市<>'北京'
- --11、 列出每个职工经手的具有最高总金额的订购单信息。
- --12、 检索哪些仓库中还没有职工的仓库的信息。
- select * from 仓库表 where 仓库号 in
- (select 仓库号 from 仓库表
- Except
- select 仓库号 from 职工表)
- --13、 检索有职工的工资大于或等于wh1仓库中任何一名职工工资的仓库号
- select distinct 仓库号 from 职工表
- where 工资 >= (select min(工资) from 职工表 where 仓库号='wh1')
コードをコピーします
|