Consulta y otras operaciones en la base de datos de pedidos
Para la estructura de la mesa:
1. Agente (número de agente, nombre, dirección, código postal, monto de comisión, proporción de comisión)
El número de agente es la clave principal.
Nombre del campo | Tipo de datos | Observaciones |
---|---|---|
ID del agente | char (4) | Clave primaria |
Nombre | nvarchar (10) | |
Dirección | nvarchar (20) | |
Código postal | char (6) | |
Importe de la comisión | poco dinero | |
Porcentaje de comisión | tinyint |
2. Clientes (número de cliente, nombre, dirección, código postal, diferencia de ingresos y gastos, límite de préstamo, número de agente)
El número de cliente es la clave principal.
Nombre del campo | Tipo de datos | Observaciones |
---|---|---|
ID del cliente | char (4) | Clave primaria |
Nombre | nvarchar (10) | |
Dirección | nvarchar (20) | |
Código postal | char (6) | |
Balanza de pagos | poco dinero | |
Límite de préstamo | poco dinero | |
ID del agente | char (4) | clave externa |
3) Productos (número de producto, información de descripción, inventario, categoría, número de almacén, precio)
El número de serie del producto es la clave principal.
Nombre del campo | Tipo de datos | Observaciones |
---|---|---|
ID del producto | char (4) | Clave primaria |
Información descriptiva | nvarchar (20) | |
Inventario | En t | |
Categoría | tinyint | |
ID de almacén | char (4) | |
Precio | poco dinero |
4) Pedido (número de pedido, fecha de pedido, número de cliente)
Nombre del campo | Tipo de datos | Observaciones |
---|---|---|
Número de orden | char (4) | Clave primaria |
Fecha de pedido | Smalldatetime | |
ID del cliente | char (4) | clave externa |
5) Artículos de pedido (número de pedido, número de producto, cantidad de pedido, precio unitario del pedido)
Nombre del campo | Tipo de datos | Observaciones |
---|---|---|
Número de orden | char (4) | clave primaria, clave externa |
ID del producto | char (4) | clave primaria, clave externa |
Cantidad de pedido | letra pequeña | |
Precio unitario de pedido | poco dinero |
Consulte el inventario total de productos con el número de almacén 1002, muestre el número de almacén y el inventario total
select 仓库编号,sum(库存量) as 总库存量 from 产品
group by 仓库编号
having 仓库编号='1002'
Consulte al agente con el monto de comisión más alto, mostrando el número, nombre, dirección y monto de comisión del agente
select 代理商编号,姓名,地址,提成金额 from 代理商
where 提成金额 in (select max(提成金额) from 代理商)
Consulta el nombre y la dirección del agente pasado por el cliente con el número 300
select a.姓名,a.地址 from 客户 b inner join 代理商 a
on a.代理商编号 = b.代理商编号
where b.客户编号 = '300'
Consulte el número de cliente y el nombre del número de producto 0033, la cantidad del pedido es mayor que 100
Nota: La cantidad de pedido mencionada aquí es contar el número de productos con un número de pedido total de 0033. Porque el mismo cliente puede haber pedido productos 0033 en múltiples pedidos diferentes.
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'
Consulta el pedido de cada cliente, muestra el número de cliente, el nombre del cliente, el número de pedido y la fecha del pedido
select a.客户编号,a.姓名,b.订单编号,b.订货日期 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
Consultar todos los artículos de pedido después de 2000 (sin incluir 2000), mostrar y mostrar solo el número de pedido, el número de producto, la cantidad de pedido, el precio unitario del pedido
select a.订单编号,a.产品编号,a.订购数量,a.订购单价 from 订货项目 a
inner join 订单 b on a.订单编号 = b.订单编号
where (DATEPART(yy,b.订货日期))>2000
Consulte el nombre del cliente correspondiente al agente cuyo monto de la comisión es mayor a 100,000 (incluyendo 100,000)
select a.姓名 from 客户 a inner join 代理商 b
on a.代理商编号 = b.代理商编号
where b.提成金额>=100000
Cree una vista que contenga el número de pedido, el número de cliente y el número de agente del pedido, denominada vista de información del pedido
create view 订单信息视图 as
select b.订单编号,a.客户编号,a.代理商编号 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
Desde la vista de información del pedido, consulte la información del producto con el número de pedido 111 (incluido el número de pedido, el número de cliente y el número de agente)
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 客户编号