Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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 - Fatal编程技术网

Sql 更新具有相同主键的字段上的值

Sql 更新具有相同主键的字段上的值,sql,Sql,我遇到了一个需要帮助的问题: 我有下面这样的简单表格 我希望SKU A的库存字段值保持不变,并使用SKU A库存值的%20更新其他SKU,其中外部参照字段等于SKU A的外部参照 有人可以帮助您编写此逻辑的SQL查询吗?您可以使用下面的查询 update语句具有where约束,该约束仅选择要更新的行。另一方面,内部查询获取的t2.INV的SKU='A' 这是一个疯狂的猜测 我认为你的样本数据不相关。我知道您希望更新查询: 保留SKU为“A”的所有记录的完整性 在所有其他记录中,使用SKU='A'

我遇到了一个需要帮助的问题:

我有下面这样的简单表格

我希望SKU A的库存字段值保持不变,并使用SKU A库存值的%20更新其他SKU,其中外部参照字段等于SKU A的外部参照


有人可以帮助您编写此逻辑的SQL查询吗?

您可以使用下面的查询

update语句具有where约束,该约束仅选择要更新的行。另一方面,内部查询获取的t2.INV的SKU='A'

这是一个疯狂的猜测

我认为你的样本数据不相关。我知道您希望更新查询:

保留SKU为“A”的所有记录的完整性 在所有其他记录中,使用SKU='A'且外部参照与当前记录中相同的记录中INV值的20%更新INV 以下是一个查询:

UPDATE mytable t1 INNER JOIN mytable t2 ON t2.sku = 'A' AND t2.xref = t1.xref SET t1.inv = t2.inv * 0.2 WHERE t1.sku != 'A'
请注意,使用此技术,无法连接的记录将不会更新,即,如果外部参照为空或与SKU='a'的行不相关。

如果a、B和C都具有相同的外部参照值,您如何知道a是主记录?您可以重新表述此问题吗?我很难弄明白你想要什么。数量应该是一个列名吗?在您的样本数据中有INV。请尝试再次解释此问题。我也听不懂。@AlexHowansky这就是我想弄明白的。@mypetlion编辑。谢谢你的回答。我如何将此应用于多个SKU的情况?您需要重新表述您的问题。那将是完全不同的背景。它可能需要更复杂的场景。如果不看完整的画面,我不能说更多。希望这能澄清我的需求。Thanks@YavuzBayhan显然,您不知道如何使用StackOverflow。您编辑的问题现在是另一个问题,我们的答案现在超出范围。这是一个公共社区,目前社区无法从我们的答案中受益。我建议您打开新问题并回滚上次编辑。对于这个问题,请检查我们的答案,如果您认为我们的答案是有用的,并且为您的第一个问题提供了正确的答案,请将其标记为答案,以便社区可以从中受益。感谢您的回答,SKUA不应仅是条件。很抱歉,我没有清楚地描述这个问题。但我有一堆SKU,它们有相同的案例,就像SKU有不同的外部参照。正如@simonare所说,这将是一个完全不同的情景?@YavuzB:我想您需要为每个用例调整并运行这个查询。 UPDATE mytable t1 INNER JOIN mytable t2 ON t2.sku = 'A' AND t2.xref = t1.xref SET t1.inv = t2.inv * 0.2 WHERE t1.sku != 'A'