取一个与某个参数匹配的值并将其复制到多行
Posted
技术标签:
【中文标题】取一个与某个参数匹配的值并将其复制到多行【英文标题】:Take one value that matches a certain parameter and copy it to multiple rows 【发布时间】:2018-05-30 17:33:46 【问题描述】:所以我的挑战是获取表 1 中的筹码数量和筹码单位,并将其复制到表 2 中的 Cookie 和甜甜圈的现有数量和单位中。我在下面有一个开始,但我仍然缺少如何仅填充“筹码”数据。
UPDATE [Table 2].[On Hand Units]
SET [Table 2].[On Hand Units]="kg"
WHERE (([Table 1].[Units]) LIKE "*kg") AND (([Table 2].[Store ID]) NOT LIKE "234" OR "456");
UPDATE [Table 2].[On Hand Amount]
SET [Table 2].[On Hand Amount]=[Table 1].[Quantity]
WHERE (([Table 1].[Units]) LIKE "*kg") AND (([Table 2].[Store ID]) NOT LIKE "234" OR "456");
【问题讨论】:
理想情况下,应在需要时计算“现有”值,而不是保存。我很困惑 - 你说表 2 是“饼干和甜甜圈”但你想保存芯片数据。我不认为你的“或”标准会像你想的那样。您是否尝试过标准Table1.Name='Chips'
?为什么看起来你只是在复制数据?
【参考方案1】:
尝试以下方法:
UPDATE B
SET B.[On Hand Amount] = A.Quantity, B.[On Hand Units] = A.Units
FROM [TABLE 1] A
JOIN [Table 2] B ON A.[Store ID] = B.[Store ID] AND A.Name = B.Name
WHERE B.[Store ID] NOT IN ('234', '456')
【讨论】:
SQL 语法在 MS Access 中不起作用,因为它在UPDATE
和 JOIN
之前不使用 FROM
子句@ 987654326@。访问方言在这方面遵循 mysql。
我不知道 OP 是否升级了他的 Access 应用程序以使用 SQL Server 后端...不是每个人都这样做吗?无论如何,这很容易解决。总体思路仍然有效。有关语法,请参见此处的第二个答案:***.com/questions/12882212/…
除非提及或标记,否则我不会做出这种假设。 Access 应用程序可以连接到任何已知的后端(SQL Server、Oracle、Postgres),但这些链接表仍必须遵守其 JET/ACE SQL 方言,除非使用直通查询。尽管如此,您的答案可以很容易地针对 Access 进行调整。
也许这应该是一个追加查询?我想从表 1 中取出薯条的数量并将其复制到饼干和甜甜圈中。由于名称不同,因此 name=name 解决方案也不起作用。六月,是的,我正在为一个非常大的数据集复制数据。以上是关于取一个与某个参数匹配的值并将其复制到多行的主要内容,如果未能解决你的问题,请参考以下文章
jQuery 取类名,并将其名称附加到特定的 css 规则? [复制]
将数据复制到同一张表和从同一表复制数据,并将复制数据的一列中的值更改为指定值