当前位置:编程学习 > C#/ASP.NET >>

求C# 夸数据更新数据的sql语句

有两个数据库 A,B 
A结构:
编号 商品名称 库存

A结构:
编号 商品名称 库存  


现在问题是有些商品既在A中,又在B中。怎么样使得A,B的同一个商品计算出他们的总库存量。

可以在A或者B中增加一个字段,总库存,然后通过SQL语句更新,SQL语句应该怎么写呢?

或者还有其他什么方法吗? --------------------编程问答-------------------- 补充:商品名称不会有重复的。 --------------------编程问答-------------------- 有一个很简单的方法,就是链接相互间的数据库。

记得给我满分。

SQL Server数据库工具自带一个:服务器对象-链接服务器-访问接口。
建立接口就可以操作相互间的数据库了,别说我没说过,如图:


如果对访问接口不了解的,可以查下资料,很多这方面的资料。我可以明确的告诉你,可以做。


还有一点,记得满分! --------------------编程问答-------------------- 不管你怎么补充,那是你自己写sql脚本的问题,好好研究我说的话,要相信自己! --------------------编程问答--------------------
引用 2 楼 qingfeng_wu 的回复:
有一个很简单的方法,就是链接相互间的数据库。

记得给我满分。

SQL Server数据库工具自带一个:服务器对象-链接服务器-访问接口。
建立接口就可以操作相互间的数据库了,别说我没说过,如图:


如果对访问接口不了解的,可以查下资料,很多这方面的资料。我可以明确的告诉你,可以做。


还有一点,记得满分!


满分甚至加分都没有问题,我的数据库的SQL SERVER 2000,好像没有你说的这些菜单啊 --------------------编程问答-------------------- SUM聚合函数不就是干这个的吗
你一会要计算总量,要会要更新,又没说更新什么东西 --------------------编程问答-------------------- 跨数据库更新?
例如
select * FROM A.table1 left join B.table2 where...
--------------------编程问答--------------------
引用 6 楼 FoxDave 的回复:
跨数据库更新?
例如
select * FROM A.table1 left join B.table2 where...



那我CONN里的数据库连接到底是连接到A还是连接到B呢。 --------------------编程问答--------------------
引用 5 楼 dongxinxi 的回复:
SUM聚合函数不就是干这个的吗
你一会要计算总量,要会要更新,又没说更新什么东西


两个都可以,只要能显示出总量就行。

SUM如果是同一张表或者同一个库中,操作我是会的,问题就是跨数据库了。 --------------------编程问答--------------------
引用 7 楼 erlzj 的回复:
Quote: 引用 6 楼 FoxDave 的回复:

跨数据库更新?
例如
select * FROM A.table1 left join B.table2 where...



那我CONN里的数据库连接到底是连接到A还是连接到B呢。

都可以,最终都是执行的查询语句,你设置可以在数据库A中创建一个视图或者存储过程,然后再视图或者存储过程中 跨库访问查询,然后返回你想要的结果集即可 --------------------编程问答--------------------
引用 7 楼 erlzj 的回复:
Quote: 引用 6 楼 FoxDave 的回复:

跨数据库更新?
例如
select * FROM A.table1 left join B.table2 where...



那我CONN里的数据库连接到底是连接到A还是连接到B呢。

写其中一个库的,另一个库用"库名..表名"的形式,注意是两个点
另外得在一个服务器上 --------------------编程问答-------------------- 在DB2数据库中,如果要跨数据库和服务器访问,要通过建立联邦,即在A中建立B库中对应的需要访问表的联邦。这样建立的联邦就像是一个视图一样,可以在A库中访问。如果联邦的过程设置了更新等操作权限,则也可以往里面更新数据。
这应该要数据库管理员设置下,SQL SERVER应该也可以建立这种连接的。 --------------------编程问答-------------------- 如果A和B在同一个数据库当中,用LS的不完全限定名称是可以的,连接数据库系统一次即可
注意,即使是在同一台服务器上的两个数据库系统中也是不行的,因为连接(配置)字符串不一样
那样的话,就只好用两个conn实例连接,如果一个数据库中你会,那你就应该会分别查出来然后相加
--------------------编程问答-------------------- 如果A和B在同一个数据库当中 => 如果A和B在同一个数据库系统(sql server实例)当中 --------------------编程问答-------------------- 应该用union all
left join 的话左边表没有的话连接不上。

A结构:
编号 商品名称 库存

Select 编号 商品名称 sum(库存) As 库存 from(
Select 编号 商品名称 库存  From A union all
Select 编号 商品名称 库存  From B)
group by 编号 商品名称  --------------------编程问答-------------------- 修改A表

Update A set 总库存 =Temp.库存 form (
Select 编号 商品名称 sum(库存) As 库存 from(
Select 编号 商品名称 库存  From A union all
Select 编号 商品名称 库存  From B)
group by 编号 商品名称)Temp 
Where A. 编号=Temp.编号 --------------------编程问答-------------------- 想问下你两个数据库是在同一台服务器上吗?上面回答并没有正面回答你的问题。 --------------------编程问答-------------------- 如果是在同一个服务器,9楼和10楼都可以帮你解决问题,如果不是可以用opendatasource来打开远程服务器,具体的应用网上都有,百度下或者google下,就可以解决你的问题了。 --------------------编程问答-------------------- 为什么非得用sql语句来实现?
在c# 中,将a中的库存,和b中的库存分别取出来放到两个datatable中,然后合并这两个datatable,在处理合并后的datatable  不就行了?
--------------------编程问答-------------------- 我以前夸四个库 8 张表连接,计算金额,那是做财务,超级复杂
前提是 这些数据库在一个服务器上,最好写成存储过程,方便修改

就和正常的表连接没什么区别 --------------------编程问答-------------------- 两表连接,合并
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,