你如何在同一个查询中更新两次?
How do you UPDATE twice within the same query?
我试图在同一个查询中使用两次更新来修改我的 TABLE 数据。你能解释一下我是怎么做到的吗?我在以下代码中遇到语法错误:
UPDATE HRBI SET HRBI.PayGroupLocationPayGroupCountryCode = IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'VP', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'SVP', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'FEL', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'DIR', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'SFL', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'STR', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'EVP', 'DEU - Exec',
IIF(HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47' OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50' OR HRBI.WorkerID = '51', 'DEU - Exec', HRBI.PayGroupLocationPayGroupCountryCode))))))))
UPDATE SET HRBI.PayGroupCountryDesc = IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec', "Germany - Exec',HRBI.PayGroupCountryDesc);
我试图在另一个更新的末尾添加一个额外的更新。另外,有没有办法在 Access SQL 中添加评论?谢谢!
太疯狂了SQL。
您的 set 语句实际上是说如果行中的某些字段符合特定条件,则使 HRBI.PayGroupLocationPayGroupCountryCode 的值 = 'DEU - Exec',否则保持原样。
"certain criteria" 应作为 where 子句实现!
所以变成:
UPDATE HRBI
SET HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
WHERE
( HRBI.PayGroupLocationPayGroupCountryCode = 'DEU'
AND
HRBI.ManagementLevel IN ('VP', 'SVP', ...etc ...)
)
OR
( HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47'
OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50'
OR HRBI.WorkerID = '51'
);
请注意,您可以使用 HRBI.WorkerID IN (45,46, .....) 但我会把这个留给您...
你还需要重写这个:
UPDATE SET HRBI.PayGroupCountryDesc =
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
, "Germany - Exec'
,HRBI.PayGroupCountryDesc);
也许像这样嵌入第一个SQL
UPDATE HRBI
SET HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
,HRBI.PayGroupCountryDesc = "Germany - Exec'
WHERE
( HRBI.PayGroupLocationPayGroupCountryCode = 'DEU'
AND
HRBI.ManagementLevel IN ('VP', 'SVP', ...etc ...)
)
OR
( HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47'
OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50'
OR HRBI.WorkerID = '51'
);
好吗?
我试图在同一个查询中使用两次更新来修改我的 TABLE 数据。你能解释一下我是怎么做到的吗?我在以下代码中遇到语法错误:
UPDATE HRBI SET HRBI.PayGroupLocationPayGroupCountryCode = IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'VP', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'SVP', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'FEL', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'DIR', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'SFL', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'STR', 'DEU - Exec',
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU' AND HRBI.ManagementLevel = 'EVP', 'DEU - Exec',
IIF(HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47' OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50' OR HRBI.WorkerID = '51', 'DEU - Exec', HRBI.PayGroupLocationPayGroupCountryCode))))))))
UPDATE SET HRBI.PayGroupCountryDesc = IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec', "Germany - Exec',HRBI.PayGroupCountryDesc);
我试图在另一个更新的末尾添加一个额外的更新。另外,有没有办法在 Access SQL 中添加评论?谢谢!
太疯狂了SQL。
您的 set 语句实际上是说如果行中的某些字段符合特定条件,则使 HRBI.PayGroupLocationPayGroupCountryCode 的值 = 'DEU - Exec',否则保持原样。
"certain criteria" 应作为 where 子句实现!
所以变成:
UPDATE HRBI
SET HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
WHERE
( HRBI.PayGroupLocationPayGroupCountryCode = 'DEU'
AND
HRBI.ManagementLevel IN ('VP', 'SVP', ...etc ...)
)
OR
( HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47'
OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50'
OR HRBI.WorkerID = '51'
);
请注意,您可以使用 HRBI.WorkerID IN (45,46, .....) 但我会把这个留给您...
你还需要重写这个:
UPDATE SET HRBI.PayGroupCountryDesc =
IIF(HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
, "Germany - Exec'
,HRBI.PayGroupCountryDesc);
也许像这样嵌入第一个SQL
UPDATE HRBI
SET HRBI.PayGroupLocationPayGroupCountryCode = 'DEU - Exec'
,HRBI.PayGroupCountryDesc = "Germany - Exec'
WHERE
( HRBI.PayGroupLocationPayGroupCountryCode = 'DEU'
AND
HRBI.ManagementLevel IN ('VP', 'SVP', ...etc ...)
)
OR
( HRBI.WorkerID = '45' OR HRBI.WorkerID = '46' OR HRBI.WorkerID = '47'
OR HRBI.WorkerID = '48' OR HRBI.WorkerID = '49' OR HRBI.WorkerID = '50'
OR HRBI.WorkerID = '51'
);
好吗?