Consulta e outras operações no banco de dados do pedido
Para estrutura da tabela:
1. Agente (número do agente, nome, endereço, CEP, valor da comissão, taxa de comissão)
O número do agente é a chave primária
Nome do campo | Tipo de dados | Observações |
---|---|---|
ID do agente | char (4) | chave primária |
Nome | nvarchar (10) | |
Morada | nvarchar (20) | |
Código postal | char (6) | |
Montante da comissão | dinheiro pequeno | |
Percentagem de comissão | tinyint |
2. Clientes (número do cliente, nome, endereço, CEP, diferença de receita e despesa, limite de empréstimo, número do agente)
O número do cliente é a chave primária
Nome do campo | Tipo de dados | Observações |
---|---|---|
ID do cliente | char (4) | chave primária |
Nome | nvarchar (10) | |
Morada | nvarchar (20) | |
Código postal | char (6) | |
Balança de pagamentos | dinheiro pequeno | |
Limite de empréstimo | dinheiro pequeno | |
ID do agente | char (4) | chave estrangeira |
3) Produtos (número do produto, informações de descrição, inventário, categoria, número do depósito, preço)
O número de série do produto é a chave primária
Nome do campo | Tipo de dados | Observações |
---|---|---|
ID do produto | char (4) | chave primária |
Informação descritiva | nvarchar (20) | |
Inventário | int | |
Categoria | tinyint | |
ID do armazém | char (4) | |
Preço | dinheiro pequeno |
4) Pedido (número do pedido, data do pedido, número do cliente)
Nome do campo | Tipo de dados | Observações |
---|---|---|
Número do pedido | char (4) | chave primária |
Data do pedido | Smalldatetime | |
ID do cliente | char (4) | chave estrangeira |
5) Itens do pedido (número do pedido, número do produto, quantidade do pedido, preço unitário do pedido)
Nome do campo | Tipo de dados | Observações |
---|---|---|
Número do pedido | char (4) | chave primária , chave estrangeira |
ID do produto | char (4) | chave primária , chave estrangeira |
Quantidade da ordem | smallint | |
Preço unitário do pedido | dinheiro pequeno |
Consultar o estoque total de produtos com o número do armazém 1002, exibir o número do armazém e o estoque total
select 仓库编号,sum(库存量) as 总库存量 from 产品
group by 仓库编号
having 仓库编号='1002'
Consulte o agente com o maior valor de comissão, mostrando o número do agente, nome, endereço e valor da comissão
select 代理商编号,姓名,地址,提成金额 from 代理商
where 提成金额 in (select max(提成金额) from 代理商)
Consulte o nome e o endereço do agente transmitido pelo cliente com o número 300
select a.姓名,a.地址 from 客户 b inner join 代理商 a
on a.代理商编号 = b.代理商编号
where b.客户编号 = '300'
Consulte o número do cliente e o nome do número do produto 0033, a quantidade do pedido é maior que 100
Nota: A quantidade do pedido mencionada aqui é para contar o número de produtos com um número total de pedidos 0033. Porque o mesmo cliente pode ter solicitado produtos 0033 em vários 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'
Consultar o pedido de cada cliente, exibir o número do cliente, o nome do cliente, o número do pedido e a data do pedido
select a.客户编号,a.姓名,b.订单编号,b.订货日期 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
Consultar todos os itens do pedido após 2000 (não incluindo 2000), exibir e exibir apenas o número do pedido, o número do produto, a quantidade do pedido, o preço unitário do pedido
select a.订单编号,a.产品编号,a.订购数量,a.订购单价 from 订货项目 a
inner join 订单 b on a.订单编号 = b.订单编号
where (DATEPART(yy,b.订货日期))>2000
Consulte o nome do cliente correspondente ao agente cujo valor da comissão é superior a 100.000 (incluindo 100.000)
select a.姓名 from 客户 a inner join 代理商 b
on a.代理商编号 = b.代理商编号
where b.提成金额>=100000
Crie uma exibição que contenha o número do pedido, o número do cliente e o número do agente do pedido, chamado de visualização de informações do pedido
create view 订单信息视图 as
select b.订单编号,a.客户编号,a.代理商编号 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
Na exibição de informações do pedido, consulte as informações do produto com o número do pedido 111 (incluindo número do pedido, número do cliente, número do 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 客户编号