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

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

--要求两个表字段名都相同--根据表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)
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-09-26
update a set a.字段1=b.字段1 ,a.字段2=b.字段2 from a,b where a.id=b.id

MSSQL 数据库问题 ,从一个表取数更新另外一个表
--要求两个表字段名都相同--根据表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,''...

在SQL数据库中如何将一个表中某几列单元格求和后的数据,更新到另一张...
先将A、B表都有的产品在B表中进行累加,代码如下(mssql适用,oracle、DB2不适用):update B表 set b.入库总数量=b.入库总数量+a.入库总数量,b.库存总金额=b.库存总金额+a.库存总金额 from B表 as b,(select 料号,sum (入库数量) as 入库总数量,sum(总金额) as 库存总金额 from 表A g...

UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句
UPDATE语句是SQL中一种强大的工具,允许我们更新数据库中的数据。在某些场景下,我们可能需要将一个表中的字段更新为另一个表的对应字段。例如,在一个成绩查询系统中,可能需要修改一张表,增加一个字段,然后将另一个表的特定ID复制过来。此时,编写循环处理可能并不高效,使用SQL语句则更为简便。考虑...

MSSQL里面如何把一个数据库表的内容,完全导入到另一个数据库的表当中...
1、右键点A库,选导出数据 2、根据导出\/导入向导,一步一步做,到第三步的时候,选择“用一条查询指定要输出的数据”,点下一步 3、输入查询语句select * from a 一直点下一步,直到把向导完成。4、在B库中会出现一个叫“结果”的表,重新命名这个表就可以了。

mssql数据库怎样从把A数据库A表的数据导入到B数据库B表
ON --导入前开启IDENTITY_INSERT为ON INSERT DataBaseB.dbo.TestTableB1 --目标数据库表(需要导入的库表)(TestId,TestName )SELECT TestId,TestName FROM DataBaseA.dbo.TestTableA1 --源数据库表(需要导出的库表)SET IDENTITY_INSERT DataBaseB.dbo.TestTableB1 OFF --导入后关闭IDENTITY_...

sql语句从一张表查询一个字段值插入另一个表中
标准SQL语句格式:INSERT INTO 表名(字段名)select 字段名 from 表面 例子:将查询出的s表中sno,j表中jno,p表中pno插入spj表中 insert into spj(sno,jno,pno)select sno,jno,pno from s,j,p

mssql 数据库中 ,想让一个表里列的值等于另外一个表里两个列的和,怎 ...
具体看时间要求了 假设 表A,表B 表A.列1=表B.列1+表B.列2 如果是要实时数据 在表B上加个触发器,当表B的数据出现变化的时候,更新表A 如果不需要实时数据 则可以对该数据库的job里添加更新表A的query 让它每天自动执行一次就可以了 ...

mysql 怎么将A表的数据变换后移到B表
3. 在C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data目录下找到数据库文件,复制到B电脑上,B电脑打开数据库附加A数据库就好了。二. 如果B数据库已经曾在,可以使用导出任务 打开数据库,右键点在数据库上,找到导出任务 按照向导选择该到处的数据表和视图。填写两个数据库的验证信息 ...

如何把SqlServer数据库中一个表的内容追加到另一个数据库表
表结构一样的话,就用insert ...select语句就可以了。

mssql如何将一个数据库中的表同步到另一个数据库中 做成事务
1 在另一个数据库中建立同样结构的副表,导入相同的数据 2 在本地数据库建立另一个数据库的相应链接 3 在本地数据库主表建立插入修改删除触发器,主表有什么变化直接写入到副表中 4当然这种方法也不是特别好,会影响本地数据库主表的性能。

相似回答
大家正在搜