0

我有这个查询(效果很好):

INSERT INTO @CreditDebitAdjustmentDetail
                    (
                     InvoiceNum,
                     ClaimNum,
                     ClaimantGLNNum,
                     LineNum,
                     BuyersPartNum,
                     UPCNum,
                     VendorPartNum,
                     CrossReferenceNum,
                     CreditDebit,
                     Qty,
                     UOM,
                     Price,
                     AdjustmentReason,
                     Amount
                    )
                    SELECT  tbl.col.value('(InvoiceNum/text())[1]', 'VARCHAR(500)') AS InvoiceNum,
                            tbl.col.value('(ClaimNum/text())[1]', 'VARCHAR(50)') AS ClaimNum,
                            tbl.col.value('(ClaimantGLNNum/text())[1]', 'VARCHAR(50)') AS ClaimantGLNNum,
                            tbl2.col2.value('(LineNum/text())[1]', 'VARCHAR(500)') AS LineNum,
                            tbl2.col2.value('(BuyersPartNum/text())[1]', 'VARCHAR(500)') AS BuyersPartNum,
                            tbl2.col2.value('(UPCNum/text())[1]', 'VARCHAR(500)') AS UPCNum,
                            tbl2.col2.value('(VendorPartNum/text())[1]', 'VARCHAR(500)') AS VendorPartNum,
                            tbl2.col2.value('(CrossReferenceNum/text())[1]', 'VARCHAR(500)') AS CrossReferenceNum,
                            tbl2.col2.value('(CreditDebit/text())[1]', 'VARCHAR(500)') AS CreditDebit,
                            tbl2.col2.value('(Qty/text())[1]', 'VARCHAR(500)') AS Qty,
                            tbl2.col2.value('(UOM/text())[1]', 'VARCHAR(500)') AS UOM,
                            tbl2.col2.value('(Price/text())[1]', 'VARCHAR(500)') AS Price,
                            tbl2.col2.value('(AdjustementReason/text())[1]', 'VARCHAR(500)') AS AdjustmentReason,
                            tbl2.col2.value('(Amount/text())[1]', 'VARCHAR(500)') AS Amount
                    FROM    @XML.nodes('/CreditDebitAdjustments/CreditDebitAdjustment') AS tbl (col)
                    CROSS APPLY tbl.col.nodes('Items/Item') AS tbl2 (col2);

但是,对于 column LineNum,我想插入一个递增的数字(例如 1、2、3、4),具体取决于 Items/Item 下有多少孩子而不是那里的实际值。

我将如何即时进行此增量?

我让你们困惑了吗?

编辑 -

XML 看起来像这样:

<parent>
  <blah1>hello1</blah1>
  <blah2>hello2</blah2>
  <blah3>hello3</blah3>
</parent>
<Items>
  <Item></Item>
  <Item></Item>
  ...
</Items>
4

0 回答 0