更新中的SQL选择查询
我正在尝试修复此查询:更新中的SQL选择查询,sql,sql-update,ms-access-2010,Sql,Sql Update,Ms Access 2010,我正在尝试修复此查询: 我有一个更新查询 UPDATE controll_SZHEAD14 LEFT JOIN [outgoing] ON controll_SZHEAD14.sa_code = [outgoing].Account SET [outgoing].Account = controll_SZHEAD14.sa_code, [outgoing].Buyer = controll_SZHEAD14.sa_buyername, [outgoing].startdate = contr
UPDATE controll_SZHEAD14
LEFT JOIN [outgoing] ON controll_SZHEAD14.sa_code = [outgoing].Account
SET [outgoing].Account = controll_SZHEAD14.sa_code, [outgoing].Buyer = controll_SZHEAD14.sa_buyername, [outgoing].startdate = controll_SZHEAD14.sa_date, [outgoing].Finance = controll_SZHEAD14.sa_tedat, [outgoing].maxdate = controll_SZHEAD14.sa_esdat, [outgoing].[25alap] = controll_SZHEAD14.sa_summary
WHERE (((controll_SZHEAD14.sa_code)>"BA14/01997"));
因此,如果我运行上面的查询,则会刷新我的数据,但仅从BA14/01997到现在。所以在本例中,这将刷新66行。(受影响的66排)SELECT TOP 1 Account FROM [outgoing] ORDER BY Account DESC;
如果我在上面运行这个,我得到了最后一个帐户,在这个例子中:BA14/01997UPDATE controll_SZHEAD14
LEFT JOIN [outgoing] ON controll_SZHEAD14.sa_code = [outgoing].Account
SET [outgoing].Account = controll_SZHEAD14.sa_code, [outgoing].Buyer = controll_SZHEAD14.sa_buyername, [outgoing].startdate = controll_SZHEAD14.sa_date, [outgoing].Finance = controll_SZHEAD14.sa_tedat, [outgoing].maxdate = controll_SZHEAD14.sa_esdat, [outgoing].[25alap] = controll_SZHEAD14.sa_summary
WHERE (((controll_SZHEAD14.sa_code)>"SELECT TOP 1 Account FROM [outgoing] GROUP BY Account DESC;"));
上述查询无法正常工作。当我运行时,我得到了受影响的0行,但我希望与第一个更新查询相同知道如何解决这个问题吗?将SELECT语句括在()括号中
UPDATE controll_SZHEAD14
LEFT JOIN [outgoing]
ON controll_SZHEAD14.sa_code = [outgoing].Account
SET [outgoing].Account = controll_SZHEAD14.sa_code,
[outgoing].Buyer = controll_SZHEAD14.sa_buyername,
[outgoing].startdate = controll_SZHEAD14.sa_date,
[outgoing].Finance = controll_SZHEAD14.sa_tedat,
[outgoing].maxdate = controll_SZHEAD14.sa_esdat,
[outgoing].[25alap] = controll_SZHEAD14.sa_summary
WHERE controll_SZHEAD14.sa_code > (
SELECT TOP 1 Account
FROM [outgoing]
ORDER BY Account DESC
);
您可以使用(从[outgoing]中选择MIN(Account))
这样您就不会获取所有记录,对它们进行排序,只返回一个结果。