有两张表
A
商品 价格
NO1 2
NO2 1.5
NO3 1.8
NO4 1.4
B
商品 价格 NO1 2
NO1 2.5
NO4 1.4
NO4 2.1
NO2 2.9
求一条语句,用B表中每种商品的价格最大值去更新A表中每种相同物料的价格
A
商品 价格
NO1 2
NO2 1.5
NO3 1.8
NO4 1.4
B
商品 价格 NO1 2
NO1 2.5
NO4 1.4
NO4 2.1
NO2 2.9
求一条语句,用B表中每种商品的价格最大值去更新A表中每种相同物料的价格
解决方案 »
- sql模糊查询问题
- 如何从视图查询某字段唯一记录(视图里面有一字段可能重复)?
- 由论坛里面一个存储过程问题提出的问题?
- 如何把数据库中的一个表中的某一列导出成一个文本文件?
- 求一SQL语句,急,在线等。。。。。。
- 我用dotnet程序,访问远程sqlServer,非常慢,一个普通的一条数据的提交也要1分多钟
- sql server 2008中如何去掉“可以对登录名/帐号进行操作”这个权限
- 两点!
- 数据库的log文件太大了,请问如何处理?
- 怎样才可,Hide the SQL Server Enerprise Manager中自建数据库中的System表(Talbe),是隐藏表,而不是数据库.
- SQL Server中有没有参数化视图?也就是视图的结果集和调用视图时所用的参数有关。
- 麻烦推荐一本有关sql server存储过程 触发器等基础知识的书籍
set 价格=b.价格
from
(select 商品,max(价格)价格 from b group by 商品) b
where
a.商品=b.商品
set 价格=(select max(价格) from b where 商品=a.商品)
update A
set A.价格 = c.价格
from A
inner join (select 商品, max(价格)as 价格 from B group by 商品) c on a.商品 = A.商品
declare @A table([商品] nvarchar(3),[价格] decimal(18,1))
Insert @A
select N'NO1',2 union all
select N'NO2',1.5 union all
select N'NO3',1.8 union all
select N'NO4',1.4
--Select * from @A
declare @B table([商品] nvarchar(3),[价格] decimal(18,1))
Insert @B
select N'NO1',2 union all
select N'NO1',2.5 union all
select N'NO4',1.4 union all
select N'NO4',2.1 union all
select N'NO2',2.9
--Select * from @B
update a set 价格=isnull((select max(价格) from @B where 商品=a.商品),价格)
from @A aselect * from @A
/*
商品 价格
---- ---------
NO1 2.5
NO2 2.9
NO3 1.8
NO4 2.1(4 row(s) affected)*/
set 价格=b.价格
from
(select 商品,max(价格) 价格 from b group by 商品) b
where
a.商品=b.商品