gpt4 book ai didi

sql - 从内部连接更新

转载 作者:搜寻专家 更新时间:2023-10-30 20:38:20 25 4
gpt4 key购买 nike

我似乎无法使内部连接方法的更新生效。我尝试用几种不同的方式编写它,但无济于事。行受到影响,但产品表的值从未实际更新。

选择要测试的代码(运行更新查询后应该不返回任何结果):

SELECT 
[P].[ProductCode],
[P].[PriceSelling],
[ID].[InclPrice],
[P].[StockQty],
[ID].[Qty]
FROM
dbo.Sync_ImportData AS [ID]
INNER JOIN
dbo.Sync_Product AS [P]
ON
[P].[ProductCode] = [ID].[ISBN]
WHERE
([P].[StockQty] <> [ID].[Qty] OR [P].[PriceSelling] <> [ID].[InclPrice])

更新代码:

UPDATE [P]
SET
[P].[StockQty] = [ID].[Qty],
[P].[PriceSelling] = [ID].[InclPrice]
FROM
dbo.Sync_Product AS [P]
INNER JOIN
dbo.Sync_ImportData AS [ID]
ON
[P].[ProductCode] = [ID].[ISBN]
WHERE
([P].[StockQty] <> [ID].[Qty] OR [P].[PriceSelling] <> [ID].[InclPrice])

基本上我需要更新库存数量和价格,如果导入数据 a) 有产品记录(ISBN 匹配 ProductCode)和 b) 任何一个值需要更新(数量或价格与 ImportData 不同)

最佳答案

如果表格之间存在多个匹配项,您可能会看到此行为。特别是,如果 ISBNSync_ImportData 中不是唯一的:

SELECT id.ISBN, COUNT(*)
FROM dbo.Sync_ImportData id
GROUP BY id.ProductCode
HAVING COUNT(*) > 1

如果有重复项,那么其中一行将用于更新——任意。更改与第二行不匹配。

关于sql - 从内部连接更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com