MSSQL 数据库问题 ,从一个表取数更新另外一个表 50

表一(采购订单):日期,供应商,物品,数量,单价(现在为空),总价(现在为空)表二(价格表):供应商,物品,单价,单价生效日期,单价是失效日期。现在想从价格表,取数到订单... 表一(采购订单): 日期,供应商,物品,数量,单价(现在为空),总价(现在为空)表二(价格表):供应商,物品,单价,单价生效日期,单价是失效日期。现在想从价格表,取数到订单表,满足日期范围内的取到订单表,并计算总价符合条件的多个区间的,取最新的单价如图所示:
发错图了已第二个图为准
展开
 我来答
折柳成萌
高粉答主

2018-09-26 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6231万
展开全部
--要求两个表字段名都相同--根据表1字段,拼一个update的sql语句,然后执行Declare @SQL Varchar(1000)='Update 表1 Set 'Select @SQL=@SQL+'表1.'+name+'=表2.'+name+',' from sys.columns where object_id=object_id('表1')and name<>'id'Set @SQL=STUFF(@SQL,LEN(@SQL),1,'')+' Where 表1.ID=表2.ID'Exec(@SQL) --先删除表1 id在表2的这些数据,然后在插入表2的数据Begin Tran Delete From 表1 From 表1 A Inner Join 表2 on 表1.id=表2.id Insert Into 表1 Select * From 表2 Commit --目前mssql没发现这样的sqlUpdate 表1 Set 表1.*=(Select * from 表2 where id=表1.id) --Oracle有这样的写法Update 表1Set (表1.a1,表1.a2,表1.a3)=(Select b1,b2,b3 from 表2 where id=表1.id) Update 表1Set (表1.*)=(Select * from 表2 where id=表1.id)
百度网友21bb2a1
2018-09-26 · TA获得超过317个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:54.6万
展开全部
update a set a.字段1=b.字段1 ,a.字段2=b.字段2 from a,b where a.id=b.id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式