MSSQL 数据库问题 ,从一个表取数更新另外一个表 50
表一(采购订单):日期,供应商,物品,数量,单价(现在为空),总价(现在为空)表二(价格表):供应商,物品,单价,单价生效日期,单价是失效日期。现在想从价格表,取数到订单...
表一(采购订单): 日期,供应商,物品,数量,单价(现在为空),总价(现在为空)表二(价格表):供应商,物品,单价,单价生效日期,单价是失效日期。现在想从价格表,取数到订单表,满足日期范围内的取到订单表,并计算总价符合条件的多个区间的,取最新的单价如图所示:
发错图了已第二个图为准 展开
发错图了已第二个图为准 展开
展开全部
--要求两个表字段名都相同--根据表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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询