注文データベースに対するクエリおよびその他の操作

注文データベースに対するクエリおよびその他の操作

テーブル構造の場合:

1.エージェント(エージェント番号、名前、住所、郵便番号、コミッション金額、コミッション比率)

エージェント番号は主キーです

フィールド名 データ型 備考
エージェントID char(4) 主キー
お名前 nvarchar(10)
住所 nvarchar(20)
郵便番号 char(6)
手数料額 小さなお金
手数料の割合 tinyint

2.顧客(顧客番号、名前、住所、郵便番号、収入と支出の差額、ローン制限、エージェント番号)

顧客番号が主キーです

フィールド名 データ型 備考
お客様ID char(4) 主キー
お名前 nvarchar(10)
住所 nvarchar(20)
郵便番号 char(6)
収支 小さなお金
ローン限度額 小さなお金
エージェントID char(4) 外部キー

3。製品(製品番号、説明情報、在庫、カテゴリ、倉庫番号、価格)

製品のシリアル番号が主キーです

フィールド名 データ型 備考
製品ID char(4) 主キー
説明的な情報 nvarchar(20)
在庫 int
カテゴリー tinyint
倉庫ID char(4)
価格 小さなお金

4。注文(注文番号、注文日、顧客番号)

フィールド名 データ型 備考
注文番号 char(4) 主キー
注文日 Smalldatetime
お客様ID char(4) 外部キー

5。注文品目(注文番号、製品番号、注文数量、注文単価)

フィールド名 データ型 備考
注文番号 char(4) 主キー、外部キー
製品ID char(4) 主キー、外部キー
注文数量 smallint
注文単価 小さなお金

倉庫番号1002の製品の総在庫を照会し、倉庫番号と総在庫を表示します

select 仓库编号,sum(库存量) as 总库存量 from 产品
group by 仓库编号
having 仓库编号='1002'

最高のコミッション金額を持つエージェントをクエリし、エージェント番号、名前、住所、コミッション金額を表示します

select 代理商编号,姓名,地址,提成金额 from 代理商
where 提成金额 in (select max(提成金额) from 代理商)

番号300の顧客から渡されたエージェントの名前と住所をクエリする

 select a.姓名,a.地址 from 客户 b inner join 代理商 a
 on a.代理商编号 = b.代理商编号
 where b.客户编号 = '300'

顧客番号と製品番号0033の名前を問い合わせます。注文数量は100を超えています

注:ここで言及する注文数量は、合計注文数が0033の製品の数を数えるためのものです。同じ顧客が複数の異なる注文で0033製品を注文した可能性があるためです。

select a.客户编号,a.姓名 from 客户 a inner join 订单 b
on a.客户编号 = b.客户编号
inner join 订货项目 c 
on b.订单编号 = c.订单编号
group by a.客户编号,a.姓名,c.产品编号
having sum(c.订购数量)>100 and c.产品编号='0033'

各顧客の注文をクエリし、顧客番号、顧客名、注文番号、注文日を表示する

select a.客户编号,a.姓名,b.订单编号,b.订货日期 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号

2000年以降(2000を含まない)のすべての注文アイテムを照会し、注文番号、製品番号、注文数量、注文単価のみを表示および表示する

select a.订单编号,a.产品编号,a.订购数量,a.订购单价 from 订货项目 a
inner join 订单 b on a.订单编号 = b.订单编号
where  (DATEPART(yy,b.订货日期))>2000 

コミッション金額が100,000(100,000を含む)を超えるエージェントに対応する顧客名を照会します

select a.姓名 from 客户 a inner join 代理商 b
on a.代理商编号 = b.代理商编号
where b.提成金额>=100000

注文情報ビューと呼ばれる注文番号、顧客番号、注文のエージェント番号を含むビューを作成します

create view 订单信息视图 as 
select b.订单编号,a.客户编号,a.代理商编号 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号

注文情報ビューから、注文番号111(注文番号、顧客番号、エージェント番号を含む)で製品情報を照会します。

select 订单编号,客户编号,代理商编号 from 订单信息视图
where 订单编号 = '111'

建立一个含有产品编号、产品库存量及产品在订量三个字段的视图,名为产品信息视图

注:① 产品在定量指产品已经累计被订购的数量

② group by 子句可以将查询结果按某一列或多列的值进行分组,但出现在select后面的字段 要么是聚合函数中的,要么是在group by 中的。

create view 产品信息视图 as
select a.产品编号,a.库存量,sum(b.订购数量) as 产品在定量 from 产品 a
inner join 订货项目 b on a.产品编号 = b.产品编号
group by a.产品编号,a.库存量

从产品信息视图中,查询产品在定量大于6100的产品,显示产品编号及产品在定量

select 产品编号,产品在定量 from 产品信息视图
where 产品在定量>6100

建立一个含有客户编号、客户所订的产品编号、该产品的订购单价及该产品的描述四个字段的视图,名为客户订购产品视图

create view 客户订购产品视图 as
select a.客户编号,b.产品编号,b.订购单价,c.描述信息 from 订单 a
inner join 订货项目 b on a.订单编号 = b.订单编号
inner join 产品 c on b.产品编号 = c.产品编号

从客户订购产品视图中,查询所订购的产品的订购单价<=1000的客户编号

select 客户编号 from  客户订购产品视图
where 订购单价 <=1000
group by 客户编号

おすすめ

転載: www.cnblogs.com/lightice/p/12727933.html