Sql 存储过程更新无公共字段表
我有两个表,Sql 存储过程更新无公共字段表,sql,sql-server-2000,Sql,Sql Server 2000,我有两个表,表A有订单号,订单行,收货号,收货日期,收货数量 Order Order Line Receiving No Receiving Date Receiving Qty A 1 455555 12/01/2013 10 A 1 455556 12/01/2013 15 A 1 455557 15/01/2013 7 A
表A
有订单号
,订单行
,收货号
,收货日期
,收货数量
Order Order Line Receiving No Receiving Date Receiving Qty
A 1 455555 12/01/2013 10
A 1 455556 12/01/2013 15
A 1 455557 15/01/2013 7
A 1 455558 16/01/2013 10
A 1 455559 16/01/2013 10
A 1 455560 16/01/2013 15
A 1 455561 31/01/2013 7
表B
有订单号
,订单行
,发票号
,发票数量
,发票日期
Order Order Line Invoice no Invoice Date Invoice Qty
A 1 333331 13/01/2013 32
A 1 333332 15/01/2013 10
A 1 333333 01/02/2013 32
如何创建一个存储过程来将发票编号
、发票数量
和发票日期
从表B
更新到表a
我对存储过程非常陌生,任何帮助都将不胜感激
期望输出:
Order Order Line Receiving No Receiving Date Receiving Qty Invoice No Invoice Date Invoice Qty
A 1 455555 12/01/2013 10 333331 13/01/2013 10
A 1 455556 12/01/2013 15 333331 13/01/2013 15
A 1 455557 15/01/2013 7 333331 13/01/2013 7
A 1 455558 16/01/2013 10 333332 15/01/2013 10
A 1 455559 16/01/2013 10 333333 01/02/2013 10
A 1 455560 16/01/2013 15 333333 01/02/2013 15
A 1 455561 31/01/2013 7 333333 01/02/2013 7
在存储过程中编写此查询
UPDATE TableA
SET ta.RecievingNo = tb.InvoiceNo,
ta.RecievingDate = tb.InvoiceDate
ta.RecievingQty = tb.InvoiceQty
FROM TableA ta
INNER JOIN TableB tb
ON ta.Order = tb.Order AND ta.OrderLine=tb.OrderLine
您能否根据您提供的样本数据和发布所需的输出,用简单的英语解释此次更新的逻辑?每个订单都有几个订单行。订单和订单行字段不是两个表的通用字段吗?@Tac…还有什么?根据您的样本数据,结果会是什么样子?期望的输出如下:我尝试了上述查询,但所有3个发票号都在重复更新。