定义一个事务,完成下列步骤: 1按编号取某厂商出产的商品平均价格,若平均价格小于20,给每种商品增加一元,直至其平均价格超过20(每增一次显示一次)。 2显示所有商品名称 、价格。 3 若有超过100元的,取消上述操作。 4提交后显示该厂商的各种商品和价格。用sql语言实现
时间: 2024-03-26 16:42:21 浏览: 141
中国300个城市产业地图:消费篇.pdf
5星 · 资源好评率100%
好的,这个事务可以使用 SQL 语言来实现。假设我们有一个名为 `goods` 的表,包含以下字段:
- `id`:商品编号;
- `name`:商品名称;
- `price`:商品价格;
- `manufacturer`:厂商名称。
下面是 SQL 语句的实现:
```sql
-- 按编号取某厂商出产的商品平均价格,若平均价格小于20,给每种商品增加一元,直至其平均价格超过20(每增一次显示一次)
DECLARE @avg_price FLOAT
SET @avg_price = (SELECT AVG(price) FROM goods WHERE manufacturer = '某厂商')
WHILE @avg_price < 20
BEGIN
UPDATE goods SET price = price + 1 WHERE manufacturer = '某厂商'
SET @avg_price = (SELECT AVG(price) FROM goods WHERE manufacturer = '某厂商')
PRINT '商品价格增加至 ' + CAST(price AS VARCHAR) + ' 元'
END
-- 显示所有商品名称、价格
SELECT name, price FROM goods WHERE manufacturer = '某厂商'
-- 若有超过100元的,取消上述操作
IF EXISTS (SELECT * FROM goods WHERE price > 100 AND manufacturer = '某厂商')
BEGIN
PRINT '商品价格超过 100 元,取消操作!'
RETURN
END
-- 提交后显示该厂商的各种商品和价格
SELECT name, price FROM goods WHERE manufacturer = '某厂商'
```
在上述 SQL 语句中,我们使用了 `PRINT` 语句来显示每次增加价格后的商品价格,因为 SQL 语言本身不支持循环语句的输出。你可以将上述 SQL 语句复制到 SQL Server Management Studio 或其他 SQL 编辑器中执行,尝试修改厂商名称、商品价格等参数,观察程序的运行结果。
阅读全文