如何将某些值从一个 table 更新为另一个

How do I update certain Values from one table into another

我有两个 table 似乎不相关的数据,我想用另一列 table 的值更新一列。例如

文章

ID        Weight    orderId    count
57        1000      10         1
1000      500       10         3
2501      1500      10         1
13        725       10         1
758       1000      10         1
...

tPackage

ID        Weight    orderId
1001      0         10
1002      0         10
1003      0         10
1004      0         10
...

这是插入后的样子:

tPackage

ID        Weight    orderId
1001      1000      10
1002      500       10
1003      500       10
1004      500       10
1005      1500      10
1006      725       10
1007      1000      10
...

包裹没有参考文章,但我每篇文章都有一个包裹,需要为每个包裹分配一篇文章的权重。一篇文章可以出现多次,需要按单位分配权重。我总是有确切数量的包裹。

关于我的尝试,我必须真诚地说,我对如何尝试完全是一片空白。我是否必须创建一个临时 table 来管理它?

多亏了 George Menoutis,我才想通了,我想。 Tally 表、ctes 和 Row_number() 对我来说都是新概念,所以我花了一段时间。这是我得到的:

WITH tally AS(
    SELECT N=Number, myId=ROW_NUMBER() OVER(ORDER BY ID, Number), Weight
    FROM master..spt_values 
    JOIN tArticle ON count >= Number 
    WHERE type = 'P'
),
cte AS
(
    SELECT myId = ROW_NUMBER() OVER(ORDER BY ID), Weight
    FROM tPackage 
)
UPDATE cte SET cte.Weight = tally.Weight
FROM tally WHERE tally.myId = cte.myId

除非有人有更好的答案,否则我会接受这个作为我的答案