Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存储过程更新无公共字段表_Sql_Sql Server 2000 - Fatal编程技术网

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个发票号都在重复更新。