我有查询
UPDATE THD
SET RepostFlag = 'Y'
,RunListNoRetroPolicyPrepay = ?
,RetroObject = ?
FROM TranHead AS THD
JOIN (
SELECT CustPolicyNo AS CustPolicyNo
,MIN(PremPeriod) AS PremPeriod
FROM TranHead
WHERE RepostFlag = 'Y'
AND PayoutTypeNo = ?
GROUP BY CustPolicyNo
) AS THDToBeReposted ON THD.CustPolicyNo = THDToBeReposted.CustPolicyNo
WHERE THD.RepostFlag = 'N'
AND THD.PremPeriod > THDToBeReposted.PremPeriod
在H2中失败并显示以下消息
表格未找到“THD”;
我查看http://www.h2database.com/html/grammar.html#table_expression以查看H2是否支持加入中的选择。看起来确实如此。也许我在查看语法时遗漏了一些东西,但在我看来,查询应该在H2中工作。
有人看到了什么问题?
感谢。
答案 0 :(得分:2)
您无法更新别名,您需要指定表名。
答案 1 :(得分:1)
我认为FROM
语法中不允许UPDATE
。
答案 2 :(得分:1)
对于其他答案的补充,JOIN
中的FROM
UPDATE
不允许使用UPDATE SomeTable as SomeAlias
SET SomeField = ?
WHERE (%GoWild%)
。它将被允许在子查询中。
基本上,坚持基本语法:
{{1}}
您是否需要别名取决于您的where子句。