【发布时间】:2018-01-17 08:45:27
【问题描述】:
我有这个 SQL 查询:
SELECT
HALLS_REGISTRATION.ID,
(
CAST(
(SELECT
HALLS_REGISTRATION.MONEY_RECEIVED_NUMERIC
FROM
HALLS_REGISTRATION
WHERE
HALLS_REGISTRATION.ID = 2)
AS DECIMAL
)
+
(SELECT
SUM(
CAST(
HALLS_REGISTRATION_PAID.PAID_MONEY
AS DECIMAL
)
)
FROM
HALLS_REGISTRATION_PAID
WHERE
HALLS_REGISTRATION_PAID.REGISTRATION_ID = HALLS_REGISTRATION.ID
)
)
FROM HALLS_REGISTRATION;
这很好用,但这不是我想要的。我想要的是用从外部选择返回的HALLS_REGISTRATION.ID 替换第 10 行的2,所以当我尝试这种方法时,
SELECT
HALLS_REGISTRATION.ID,
(
CAST(
(SELECT
HALLS_REGISTRATION.MONEY_RECEIVED_NUMERIC
FROM
HALLS_REGISTRATION
WHERE
HALLS_REGISTRATION.ID = ROOT.HALLS_REGISTRATION.ID)
AS DECIMAL
)
+
(SELECT
SUM(
CAST(
HALLS_REGISTRATION_PAID.PAID_MONEY
AS DECIMAL
)
)
FROM
HALLS_REGISTRATION_PAID
WHERE
HALLS_REGISTRATION_PAID.REGISTRATION_ID = HALLS_REGISTRATION.ID
)
)
FROM HALLS_REGISTRATION AS ROOT;
DataGrip 将 Root 视为未解析的符号,我在执行时收到此错误
[42S22][42122] 未找到列“HALLS_REGISTRATION.ID”; SQL 声明:
我希望查询与 H2、MySQL 或两者兼容。
【问题讨论】:
-
请参阅:Why should I provide an MCVE for what seems to me to be a very simple SQL query? 另外,我认为您应该决定要使用这两个 RDBMS 中的哪一个。